<?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>110221</bug_id>
          
          <creation_ts>2013-02-19 07:13:41 -0800</creation_ts>
          <short_desc>[EFL][GTK] Move text selection/focus notification for a11y from gtk to atk directory</short_desc>
          <delta_ts>2013-02-25 09:32:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mariusz Grzegorczyk">mariusz.g</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>mario</cc>
    
    <cc>mifenton</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836363</commentid>
    <comment_count>0</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2013-02-19 07:13:41 -0800</bug_when>
    <thetext>Accessibility needs to be notified about text selection/focus for EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836369</commentid>
    <comment_count>1</comment_count>
      <attachid>189083</attachid>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2013-02-19 07:20:16 -0800</bug_when>
    <thetext>Created attachment 189083
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836374</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 07:23:19 -0800</bug_when>
    <thetext>Attachment 189083 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/editing/FrameSelection.h&apos;, u&apos;Source/WebCore/editing/atk/FrameSelectionAtk.cpp&apos;, u&apos;Source/WebCore/editing/gtk/FrameSelectionGtk.cpp&apos;]&quot; exit_code: 1
Source/WebCore/editing/atk/FrameSelectionAtk.cpp:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836378</commentid>
    <comment_count>3</comment_count>
      <attachid>189088</attachid>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2013-02-19 07:28:25 -0800</bug_when>
    <thetext>Created attachment 189088
updated style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838357</commentid>
    <comment_count>4</comment_count>
      <attachid>189088</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-02-21 05:36:48 -0800</bug_when>
    <thetext>Comment on attachment 189088
updated style

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

Informal review:

This patch looks good to me overall. The only suggestion I would make is that perhaps you would be interested in adding some unit test at some point for EFL at some point, so you make sure this doesn&apos;t get broken in the future for your port, although I guess that&apos;s probably something you&apos;re already thinking of doing in a later stage.

As for the GTK port, this patch should be fine as it is as long as the patch does not break any layout/unit test.

Last, see some minor comments below...

&gt; Source/WebCore/ChangeLog:14
&gt; +        * GNUmakefile.list.am:
&gt; +        * PlatformEfl.cmake:
&gt; +        * editing/FrameSelection.h:
&gt; +        (WebCore):

As long as it&apos;s possible and make sense, you should provide a description in the ChangeLog for each of these items.

&gt; Source/WebCore/ChangeLog:19
&gt; +        * editing/atk/FrameSelectionAtk.cpp: Renamed from Source/WebCore/editing/gtk/FrameSelectionGtk.cpp.
&gt; +        (WebCore):
&gt; +        (WebCore::emitTextSelectionChange):
&gt; +        (WebCore::maybeEmitTextFocusChange):
&gt; +        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

Maybe for this ones is not needed as you are just renaming a path

&gt; Source/WebCore/editing/atk/FrameSelectionAtk.cpp:3
&gt; + * Copyright (C) 2013 Samsung Electronics

I think it&apos;s a bit overkill to add the Copyright line here if you&apos;re just renaming the file :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838361</commentid>
    <comment_count>5</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2013-02-21 06:00:22 -0800</bug_when>
    <thetext>(In reply to comment #4)

&gt; &gt; Source/WebCore/editing/atk/FrameSelectionAtk.cpp:3
&gt; &gt; + * Copyright (C) 2013 Samsung Electronics
&gt; 
&gt; I think it&apos;s a bit overkill to add the Copyright line here if you&apos;re just renaming the file :-)

There is small change in includes there. #if PLATFORM(EFL)....#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838370</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-02-21 06:09:03 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; 
&gt; &gt; &gt; Source/WebCore/editing/atk/FrameSelectionAtk.cpp:3
&gt; &gt; &gt; + * Copyright (C) 2013 Samsung Electronics
&gt; &gt; 
&gt; &gt; I think it&apos;s a bit overkill to add the Copyright line here if you&apos;re just renaming the file :-)
&gt; 
&gt; There is small change in includes there. #if PLATFORM(EFL)....#endif

Yes, but that&apos;s just about including files, not actual code in the file unit, so I still think it&apos;s a bit overkill to add the copyright line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838384</commentid>
    <comment_count>7</comment_count>
      <attachid>189519</attachid>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2013-02-21 06:40:50 -0800</bug_when>
    <thetext>Created attachment 189519
applied Mario&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840951</commentid>
    <comment_count>8</comment_count>
      <attachid>189519</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-25 07:24:40 -0800</bug_when>
    <thetext>Comment on attachment 189519
applied Mario&apos;s comments

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

&gt; Source/WebCore/editing/atk/FrameSelectionAtk.cpp:104
&gt; +    // Emit relatedsignals.

Nit: relatedsignals -&gt; related signals. In actuality, all of the comments in this function are pretty redundant though and can be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840984</commentid>
    <comment_count>9</comment_count>
      <attachid>190064</attachid>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2013-02-25 08:11:07 -0800</bug_when>
    <thetext>Created attachment 190064
Applied Martin&apos;s suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841030</commentid>
    <comment_count>10</comment_count>
      <attachid>190064</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-25 09:32:14 -0800</bug_when>
    <thetext>Comment on attachment 190064
Applied Martin&apos;s suggestions.

Clearing flags on attachment: 190064

Committed r143937: &lt;http://trac.webkit.org/changeset/143937&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841031</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-25 09:32:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189083</attachid>
            <date>2013-02-19 07:20:16 -0800</date>
            <delta_ts>2013-02-19 07:28:25 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug110221.patch</filename>
            <type>text/plain</type>
            <size>11102</size>
            <attacher name="Mariusz Grzegorczyk">mariusz.g</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNTQyYTIyLi5iMzBkMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTMtMDItMTggIE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF1bR1RLXSBNb3ZlIHRleHQgc2VsZWN0aW9uL2ZvY3VzIG5vdGlm
aWNhdGlvbiBmb3IgYTExeSBmcm9tIGd0ayB0byBhdGsgZGlyZWN0b3J5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyZSBpbXBsZW1lbnRhdGlvbiBi
ZXR3ZWVuIGVmbCBhbmQgZ3RrLgorICAgICAgICBVcGRhdGUgYnVpbGQgd2l0aCBjaGFuZ2VzIG1h
ZGUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3Jt
RWZsLmNtYWtlOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3Rr
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW1pdFRleHRTZWxl
Y3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6bWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKwogMjAxMy0wMi0xOCAgVnNldm9sb2QgVmxhc292ICA8dnNl
dmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBKYXZhU2NyaXB0U291
cmNlRnJhbWUgc2hvdWxkIGluaGVyaXQgVUlTb3VyY2VDb2RlRnJhbWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IGQ3MGIxZDEuLmI0ZDljOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNjEwNyw3ICs2MTA3LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlVXRpbC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3Jh
cHBlckF0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVXcmFwcGVyQXRrLmggXAotCVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0ZyYW1l
U2VsZWN0aW9uR3RrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxl
Y3Rpb25BdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0
ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2d0ay9BdWRpb0J1c0d0ay5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmZWFiYzIxLi4wNjk4M2U1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUVmbC5jbWFrZQpAQCAtMSw0ICsxLDUgQEAKIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nL2F0ayIKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGFnZS9lZmwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJv
IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCkBAIC0zNCw2ICszNSw4IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgZWRpdGluZy9TbWFydFJlcGxhY2VJQ1Uu
Y3BwCiAKKyAgICBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKwogICAgIHBhZ2Uv
ZWZsL0RyYWdDb250cm9sbGVyRWZsLmNwcAogICAgIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDI2NDQyYTAu
LjFmZTA0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTMy
OSw3ICszMjksNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUo
UGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogICAgIG1fdHlwaW5nU3R5bGUgPSBzdHls
ZTsKIH0KIAotI2lmICEoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KENIUk9NSVVNKSkKKyNpZiAhKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oRUZMKSkKIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDE1NjlkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC0wLDAg
KzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworIAorI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0
ay5oIgorCisjaWYgUExBVEZPUk0oRUZMKQorI2luY2x1ZGUgPGdsaWIuaD4KKyNlbHNlCisjaW5j
bHVkZSA8Z3RrL2d0ay5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHZvaWQgZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Uo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiwg
aW50IG9mZnNldCkKK3sKKyAgICBBdGtPYmplY3QqIGF4T2JqZWN0ID0gb2JqZWN0LT53cmFwcGVy
KCk7CisgICAgaWYgKCFheE9iamVjdCB8fCAhQVRLX0lTX1RFWFQoYXhPYmplY3QpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJ0ZXh0LWNh
cmV0LW1vdmVkIiwgb2Zmc2V0KTsKKyAgICBpZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSkKKyAgICAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAidGV4dC1zZWxlY3Rpb24tY2hhbmdl
ZCIpOworfQorCitzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCit7CisgICAgLy8gVGhpcyBzdGF0aWMg
dmFyaWFibGUgaXMgbmVlZGVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG9sZCBvYmplY3QKKyAgICAv
LyBhcyBwZXIgcHJldmlvdXMgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiwgaW4gb3JkZXIgdG8gcHJv
cGVybHkKKyAgICAvLyBkZWNpZGUgd2hldGhlciB0byBlbWl0IHNvbWUgc2lnbmFscyBvciBub3Qu
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIG9s
ZE9iamVjdCwgKCkpOworCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9
IHBycE9iamVjdDsKKworICAgIC8vIEVuc3VyZSB0aGUgb2xkT2JqZWN0IGJlbG9uZ3MgdG8gdGhl
IHNhbWUgZG9jdW1lbnQgdGhhdCB0aGUKKyAgICAvLyBjdXJyZW50IG9iamVjdCBzbyBmdXJ0aGVy
IGNvbXBhcmlzb25zIG1ha2Ugc2Vuc2UuIE90aGVyd2lzZSwKKyAgICAvLyBqdXN0IHJlc2V0IG9s
ZE9iamVjdCB0byAwIHNvIGl0IHdvbid0IGJlIHRha2VuIGludG8gYWNjb3VudCBpbgorICAgIC8v
IHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLgorICAgIGlm
IChvYmplY3QgJiYgb2xkT2JqZWN0ICYmIG9sZE9iamVjdC0+ZG9jdW1lbnQoKSAhPSBvYmplY3Qt
PmRvY3VtZW50KCkpCisgICAgICAgIG9sZE9iamVjdCA9IDA7CisKKyAgICBBdGtPYmplY3QqIGF4
T2JqZWN0ID0gb2JqZWN0ID8gb2JqZWN0LT53cmFwcGVyKCkgOiAwOworICAgIEF0a09iamVjdCog
b2xkQXhPYmplY3QgPSBvbGRPYmplY3QgPyBvbGRPYmplY3QtPndyYXBwZXIoKSA6IDA7CisKKyAg
ICBpZiAoYXhPYmplY3QgIT0gb2xkQXhPYmplY3QpIHsKKyAgICAgICAgaWYgKG9sZEF4T2JqZWN0
ICYmIEFUS19JU19URVhUKG9sZEF4T2JqZWN0KSkgeworICAgICAgICAgICAgZ19zaWduYWxfZW1p
dF9ieV9uYW1lKG9sZEF4T2JqZWN0LCAiZm9jdXMtZXZlbnQiLCBmYWxzZSk7CisgICAgICAgICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUob2xkQXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiZm9j
dXNlZCIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXhPYmplY3QgJiYgQVRLX0lT
X1RFWFQoYXhPYmplY3QpKSB7CisgICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhP
YmplY3QsICJmb2N1cy1ldmVudCIsIHRydWUpOworICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImZvY3VzZWQiLCB0cnVlKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIC8vIFVwZGF0ZSBwb2ludGVyIHRvIGxhc3QgZm9jdXNlZCBvYmpl
Y3QuCisgICAgb2xkT2JqZWN0ID0gb2JqZWN0OworfQorCisKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gUmV0dXJuIGZvciBubyB2YWxpZCBzZWxlY3Rpb25zLgorICAgIGlmICghbV9zZWxlY3Rp
b24uc3RhcnQoKS5pc05vdE51bGwoKSB8fCAhbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlck9iamVjdCogZm9jdXNlZE5vZGUgPSBtX3Nl
bGVjdGlvbi5lbmQoKS5jb250YWluZXJOb2RlKCktPnJlbmRlcmVyKCk7CisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eU9iamVjdCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmF4
T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZm9jdXNlZE5vZGUpOworCisgICAgLy8gTmVlZCB0
byBjaGVjayB0aGlzIGFzIGdldE9yQ3JlYXRlIGNvdWxkIHJldHVybiAwLgorICAgIGlmICghYWNj
ZXNzaWJpbGl0eU9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW50IG9mZnNldDsKKyAg
ICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2JqZWN0ID0gb2JqZWN0Rm9jdXNlZEFuZENh
cmV0T2Zmc2V0VW5pZ25vcmVkKGFjY2Vzc2liaWxpdHlPYmplY3QsIG9mZnNldCk7CisgICAgaWYg
KCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEVtaXQgcmVsYXRlZHNpZ25hbHMu
CisgICAgZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Uob2JqZWN0LmdldCgpLCBtX3NlbGVjdGlvbiwg
b2Zmc2V0KTsKKyAgICBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2Uob2JqZWN0LnJlbGVhc2UoKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDc5MmNkNC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9GcmFt
ZVNlbGVjdGlvbkd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCi0KLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCi0j
aW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5o
IgotCi0jaW5jbHVkZSA8Z3RrL2d0ay5oPgotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyB2b2lkIGVtaXRUZXh0U2VsZWN0aW9uQ2hhbmdl
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24s
IGludCBvZmZzZXQpCi17Ci0gICAgQXRrT2JqZWN0KiBheE9iamVjdCA9IG9iamVjdC0+d3JhcHBl
cigpOwotICAgIGlmICghYXhPYmplY3QgfHwgIUFUS19JU19URVhUKGF4T2JqZWN0KSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAidGV4dC1j
YXJldC1tb3ZlZCIsIG9mZnNldCk7Ci0gICAgaWYgKHNlbGVjdGlvbi5pc1JhbmdlKCkpCi0gICAg
ICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgInRleHQtc2VsZWN0aW9uLWNoYW5n
ZWQiKTsKLX0KLQotc3RhdGljIHZvaWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0KQotewotICAgIC8vIFRoaXMgc3RhdGlj
IHZhcmlhYmxlIGlzIG5lZWRlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBvbGQgb2JqZWN0Ci0gICAg
Ly8gYXMgcGVyIHByZXZpb3VzIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24sIGluIG9yZGVyIHRvIHBy
b3Blcmx5Ci0gICAgLy8gZGVjaWRlIHdoZXRoZXIgdG8gZW1pdCBzb21lIHNpZ25hbHMgb3Igbm90
LgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBv
bGRPYmplY3QsICgpKTsKLQotICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBvYmplY3Qg
PSBwcnBPYmplY3Q7Ci0KLSAgICAvLyBFbnN1cmUgdGhlIG9sZE9iamVjdCBiZWxvbmdzIHRvIHRo
ZSBzYW1lIGRvY3VtZW50IHRoYXQgdGhlCi0gICAgLy8gY3VycmVudCBvYmplY3Qgc28gZnVydGhl
ciBjb21wYXJpc29ucyBtYWtlIHNlbnNlLiBPdGhlcndpc2UsCi0gICAgLy8ganVzdCByZXNldCBv
bGRPYmplY3QgdG8gMCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291bnQgaW4KLSAgICAv
LyB0aGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGNhbGwgdG8gdGhpcyBmdW5jdGlvbi4KLSAgICBp
ZiAob2JqZWN0ICYmIG9sZE9iamVjdCAmJiBvbGRPYmplY3QtPmRvY3VtZW50KCkgIT0gb2JqZWN0
LT5kb2N1bWVudCgpKQotICAgICAgICBvbGRPYmplY3QgPSAwOwotCi0gICAgQXRrT2JqZWN0KiBh
eE9iamVjdCA9IG9iamVjdCA/IG9iamVjdC0+d3JhcHBlcigpIDogMDsKLSAgICBBdGtPYmplY3Qq
IG9sZEF4T2JqZWN0ID0gb2xkT2JqZWN0ID8gb2xkT2JqZWN0LT53cmFwcGVyKCkgOiAwOwotCi0g
ICAgaWYgKGF4T2JqZWN0ICE9IG9sZEF4T2JqZWN0KSB7Ci0gICAgICAgIGlmIChvbGRBeE9iamVj
dCAmJiBBVEtfSVNfVEVYVChvbGRBeE9iamVjdCkpIHsKLSAgICAgICAgICAgIGdfc2lnbmFsX2Vt
aXRfYnlfbmFtZShvbGRBeE9iamVjdCwgImZvY3VzLWV2ZW50IiwgZmFsc2UpOwotICAgICAgICAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG9sZEF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImZv
Y3VzZWQiLCBmYWxzZSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGF4T2JqZWN0ICYmIEFUS19J
U19URVhUKGF4T2JqZWN0KSkgewotICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4
T2JqZWN0LCAiZm9jdXMtZXZlbnQiLCB0cnVlKTsKLSAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShheE9iamVjdCwgInN0YXRlLWNoYW5nZSIsICJmb2N1c2VkIiwgdHJ1ZSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICAvLyBVcGRhdGUgcG9pbnRlciB0byBsYXN0IGZvY3VzZWQgb2Jq
ZWN0LgotICAgIG9sZE9iamVjdCA9IG9iamVjdDsKLX0KLQotCi12b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKLXsKLSAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIC8vIFJldHVybiBmb3Igbm8gdmFsaWQgc2VsZWN0aW9ucy4KLSAgICBpZiAoIW1fc2VsZWN0
aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgfHwgIW1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZW5kZXJPYmplY3QqIGZvY3VzZWROb2RlID0gbV9z
ZWxlY3Rpb24uZW5kKCkuY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOwotICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGFjY2Vzc2liaWxpdHlPYmplY3QgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5h
eE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGZvY3VzZWROb2RlKTsKLQotICAgIC8vIE5lZWQg
dG8gY2hlY2sgdGhpcyBhcyBnZXRPckNyZWF0ZSBjb3VsZCByZXR1cm4gMC4KLSAgICBpZiAoIWFj
Y2Vzc2liaWxpdHlPYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBvZmZzZXQ7Ci0g
ICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9IG9iamVjdEZvY3VzZWRBbmRD
YXJldE9mZnNldFVuaWdub3JlZChhY2Nlc3NpYmlsaXR5T2JqZWN0LCBvZmZzZXQpOwotICAgIGlm
ICghb2JqZWN0KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBFbWl0IHJlbGF0ZWRzaWduYWxz
LgotICAgIGVtaXRUZXh0U2VsZWN0aW9uQ2hhbmdlKG9iamVjdC5nZXQoKSwgbV9zZWxlY3Rpb24s
IG9mZnNldCk7Ci0gICAgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKG9iamVjdC5yZWxlYXNlKCkp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189088</attachid>
            <date>2013-02-19 07:28:25 -0800</date>
            <delta_ts>2013-02-21 06:40:50 -0800</delta_ts>
            <desc>updated style</desc>
            <filename>bug110221.patch</filename>
            <type>text/plain</type>
            <size>11101</size>
            <attacher name="Mariusz Grzegorczyk">mariusz.g</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNTQyYTIyLi5iMzBkMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTMtMDItMTggIE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF1bR1RLXSBNb3ZlIHRleHQgc2VsZWN0aW9uL2ZvY3VzIG5vdGlm
aWNhdGlvbiBmb3IgYTExeSBmcm9tIGd0ayB0byBhdGsgZGlyZWN0b3J5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyZSBpbXBsZW1lbnRhdGlvbiBi
ZXR3ZWVuIGVmbCBhbmQgZ3RrLgorICAgICAgICBVcGRhdGUgYnVpbGQgd2l0aCBjaGFuZ2VzIG1h
ZGUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3Jt
RWZsLmNtYWtlOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3Rr
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW1pdFRleHRTZWxl
Y3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6bWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKwogMjAxMy0wMi0xOCAgVnNldm9sb2QgVmxhc292ICA8dnNl
dmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBKYXZhU2NyaXB0U291
cmNlRnJhbWUgc2hvdWxkIGluaGVyaXQgVUlTb3VyY2VDb2RlRnJhbWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IGQ3MGIxZDEuLmI0ZDljOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNjEwNyw3ICs2MTA3LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlVXRpbC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3Jh
cHBlckF0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVXcmFwcGVyQXRrLmggXAotCVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0ZyYW1l
U2VsZWN0aW9uR3RrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxl
Y3Rpb25BdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0
ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2d0ay9BdWRpb0J1c0d0ay5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmZWFiYzIxLi4wNjk4M2U1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUVmbC5jbWFrZQpAQCAtMSw0ICsxLDUgQEAKIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nL2F0ayIKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGFnZS9lZmwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJv
IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCkBAIC0zNCw2ICszNSw4IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgZWRpdGluZy9TbWFydFJlcGxhY2VJQ1Uu
Y3BwCiAKKyAgICBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKwogICAgIHBhZ2Uv
ZWZsL0RyYWdDb250cm9sbGVyRWZsLmNwcAogICAgIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDI2NDQyYTAu
LjFmZTA0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTMy
OSw3ICszMjksNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUo
UGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogICAgIG1fdHlwaW5nU3R5bGUgPSBzdHls
ZTsKIH0KIAotI2lmICEoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KENIUk9NSVVNKSkKKyNpZiAhKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oRUZMKSkKIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDE1NjlkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC0wLDAg
KzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRr
LmgiCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2Vsc2UKKyNpbmNs
dWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgdm9pZCBlbWl0VGV4dFNlbGVjdGlvbkNoYW5nZShB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uLCBp
bnQgb2Zmc2V0KQoreworICAgIEF0a09iamVjdCogYXhPYmplY3QgPSBvYmplY3QtPndyYXBwZXIo
KTsKKyAgICBpZiAoIWF4T2JqZWN0IHx8ICFBVEtfSVNfVEVYVChheE9iamVjdCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgInRleHQtY2Fy
ZXQtbW92ZWQiLCBvZmZzZXQpOworICAgIGlmIChzZWxlY3Rpb24uaXNSYW5nZSgpKQorICAgICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJ0ZXh0LXNlbGVjdGlvbi1jaGFuZ2Vk
Iik7Cit9CisKK3N0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKK3sKKyAgICAvLyBUaGlzIHN0YXRpYyB2
YXJpYWJsZSBpcyBuZWVkZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgb2xkIG9iamVjdAorICAgIC8v
IGFzIHBlciBwcmV2aW91cyBjYWxscyB0byB0aGlzIGZ1bmN0aW9uLCBpbiBvcmRlciB0byBwcm9w
ZXJseQorICAgIC8vIGRlY2lkZSB3aGV0aGVyIHRvIGVtaXQgc29tZSBzaWduYWxzIG9yIG5vdC4K
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwgb2xk
T2JqZWN0LCAoKSk7CisKKyAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2JqZWN0ID0g
cHJwT2JqZWN0OworCisgICAgLy8gRW5zdXJlIHRoZSBvbGRPYmplY3QgYmVsb25ncyB0byB0aGUg
c2FtZSBkb2N1bWVudCB0aGF0IHRoZQorICAgIC8vIGN1cnJlbnQgb2JqZWN0IHNvIGZ1cnRoZXIg
Y29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLAorICAgIC8vIGp1c3QgcmVzZXQgb2xk
T2JqZWN0IHRvIDAgc28gaXQgd29uJ3QgYmUgdGFrZW4gaW50byBhY2NvdW50IGluCisgICAgLy8g
dGhlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgICAgaWYg
KG9iamVjdCAmJiBvbGRPYmplY3QgJiYgb2xkT2JqZWN0LT5kb2N1bWVudCgpICE9IG9iamVjdC0+
ZG9jdW1lbnQoKSkKKyAgICAgICAgb2xkT2JqZWN0ID0gMDsKKworICAgIEF0a09iamVjdCogYXhP
YmplY3QgPSBvYmplY3QgPyBvYmplY3QtPndyYXBwZXIoKSA6IDA7CisgICAgQXRrT2JqZWN0KiBv
bGRBeE9iamVjdCA9IG9sZE9iamVjdCA/IG9sZE9iamVjdC0+d3JhcHBlcigpIDogMDsKKworICAg
IGlmIChheE9iamVjdCAhPSBvbGRBeE9iamVjdCkgeworICAgICAgICBpZiAob2xkQXhPYmplY3Qg
JiYgQVRLX0lTX1RFWFQob2xkQXhPYmplY3QpKSB7CisgICAgICAgICAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUob2xkQXhPYmplY3QsICJmb2N1cy1ldmVudCIsIGZhbHNlKTsKKyAgICAgICAgICAg
IGdfc2lnbmFsX2VtaXRfYnlfbmFtZShvbGRBeE9iamVjdCwgInN0YXRlLWNoYW5nZSIsICJmb2N1
c2VkIiwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGlmIChheE9iamVjdCAmJiBBVEtfSVNf
VEVYVChheE9iamVjdCkpIHsKKyAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9i
amVjdCwgImZvY3VzLWV2ZW50IiwgdHJ1ZSk7CisgICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUoYXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiZm9jdXNlZCIsIHRydWUpOworICAgICAg
ICB9CisgICAgfQorCisgICAgLy8gVXBkYXRlIHBvaW50ZXIgdG8gbGFzdCBmb2N1c2VkIG9iamVj
dC4KKyAgICBvbGRPYmplY3QgPSBvYmplY3Q7Cit9CisKKwordm9pZCBGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBSZXR1cm4gZm9yIG5vIHZhbGlkIHNlbGVjdGlvbnMuCisgICAgaWYgKCFtX3NlbGVjdGlv
bi5zdGFydCgpLmlzTm90TnVsbCgpIHx8ICFtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVuZGVyT2JqZWN0KiBmb2N1c2VkTm9kZSA9IG1fc2Vs
ZWN0aW9uLmVuZCgpLmNvbnRhaW5lck5vZGUoKS0+cmVuZGVyZXIoKTsKKyAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5T2JqZWN0ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YXhP
YmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShmb2N1c2VkTm9kZSk7CisKKyAgICAvLyBOZWVkIHRv
IGNoZWNrIHRoaXMgYXMgZ2V0T3JDcmVhdGUgY291bGQgcmV0dXJuIDAuCisgICAgaWYgKCFhY2Nl
c3NpYmlsaXR5T2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgb2Zmc2V0OworICAg
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBvYmplY3QgPSBvYmplY3RGb2N1c2VkQW5kQ2Fy
ZXRPZmZzZXRVbmlnbm9yZWQoYWNjZXNzaWJpbGl0eU9iamVjdCwgb2Zmc2V0KTsKKyAgICBpZiAo
IW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRW1pdCByZWxhdGVkc2lnbmFscy4K
KyAgICBlbWl0VGV4dFNlbGVjdGlvbkNoYW5nZShvYmplY3QuZ2V0KCksIG1fc2VsZWN0aW9uLCBv
ZmZzZXQpOworICAgIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShvYmplY3QucmVsZWFzZSgpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkNzkyY2Q0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0ZyYW1l
U2VsZWN0aW9uR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0gCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKLQotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLSNp
bmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmgi
Ci0KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIHZvaWQgZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Uo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiwg
aW50IG9mZnNldCkKLXsKLSAgICBBdGtPYmplY3QqIGF4T2JqZWN0ID0gb2JqZWN0LT53cmFwcGVy
KCk7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhQVRLX0lTX1RFWFQoYXhPYmplY3QpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJ0ZXh0LWNh
cmV0LW1vdmVkIiwgb2Zmc2V0KTsKLSAgICBpZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSkKLSAgICAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAidGV4dC1zZWxlY3Rpb24tY2hhbmdl
ZCIpOwotfQotCi1zdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCi17Ci0gICAgLy8gVGhpcyBzdGF0aWMg
dmFyaWFibGUgaXMgbmVlZGVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG9sZCBvYmplY3QKLSAgICAv
LyBhcyBwZXIgcHJldmlvdXMgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiwgaW4gb3JkZXIgdG8gcHJv
cGVybHkKLSAgICAvLyBkZWNpZGUgd2hldGhlciB0byBlbWl0IHNvbWUgc2lnbmFscyBvciBub3Qu
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIG9s
ZE9iamVjdCwgKCkpOwotCi0gICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9
IHBycE9iamVjdDsKLQotICAgIC8vIEVuc3VyZSB0aGUgb2xkT2JqZWN0IGJlbG9uZ3MgdG8gdGhl
IHNhbWUgZG9jdW1lbnQgdGhhdCB0aGUKLSAgICAvLyBjdXJyZW50IG9iamVjdCBzbyBmdXJ0aGVy
IGNvbXBhcmlzb25zIG1ha2Ugc2Vuc2UuIE90aGVyd2lzZSwKLSAgICAvLyBqdXN0IHJlc2V0IG9s
ZE9iamVjdCB0byAwIHNvIGl0IHdvbid0IGJlIHRha2VuIGludG8gYWNjb3VudCBpbgotICAgIC8v
IHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLgotICAgIGlm
IChvYmplY3QgJiYgb2xkT2JqZWN0ICYmIG9sZE9iamVjdC0+ZG9jdW1lbnQoKSAhPSBvYmplY3Qt
PmRvY3VtZW50KCkpCi0gICAgICAgIG9sZE9iamVjdCA9IDA7Ci0KLSAgICBBdGtPYmplY3QqIGF4
T2JqZWN0ID0gb2JqZWN0ID8gb2JqZWN0LT53cmFwcGVyKCkgOiAwOwotICAgIEF0a09iamVjdCog
b2xkQXhPYmplY3QgPSBvbGRPYmplY3QgPyBvbGRPYmplY3QtPndyYXBwZXIoKSA6IDA7Ci0KLSAg
ICBpZiAoYXhPYmplY3QgIT0gb2xkQXhPYmplY3QpIHsKLSAgICAgICAgaWYgKG9sZEF4T2JqZWN0
ICYmIEFUS19JU19URVhUKG9sZEF4T2JqZWN0KSkgewotICAgICAgICAgICAgZ19zaWduYWxfZW1p
dF9ieV9uYW1lKG9sZEF4T2JqZWN0LCAiZm9jdXMtZXZlbnQiLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUob2xkQXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiZm9j
dXNlZCIsIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoYXhPYmplY3QgJiYgQVRLX0lT
X1RFWFQoYXhPYmplY3QpKSB7Ci0gICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhP
YmplY3QsICJmb2N1cy1ldmVudCIsIHRydWUpOwotICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImZvY3VzZWQiLCB0cnVlKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIC8vIFVwZGF0ZSBwb2ludGVyIHRvIGxhc3QgZm9jdXNlZCBvYmpl
Y3QuCi0gICAgb2xkT2JqZWN0ID0gb2JqZWN0OwotfQotCi0KLXZvaWQgRnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQotewotICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgLy8gUmV0dXJuIGZvciBubyB2YWxpZCBzZWxlY3Rpb25zLgotICAgIGlmICghbV9zZWxlY3Rp
b24uc3RhcnQoKS5pc05vdE51bGwoKSB8fCAhbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlck9iamVjdCogZm9jdXNlZE5vZGUgPSBtX3Nl
bGVjdGlvbi5lbmQoKS5jb250YWluZXJOb2RlKCktPnJlbmRlcmVyKCk7Ci0gICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eU9iamVjdCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmF4
T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZm9jdXNlZE5vZGUpOwotCi0gICAgLy8gTmVlZCB0
byBjaGVjayB0aGlzIGFzIGdldE9yQ3JlYXRlIGNvdWxkIHJldHVybiAwLgotICAgIGlmICghYWNj
ZXNzaWJpbGl0eU9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW50IG9mZnNldDsKLSAg
ICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2JqZWN0ID0gb2JqZWN0Rm9jdXNlZEFuZENh
cmV0T2Zmc2V0VW5pZ25vcmVkKGFjY2Vzc2liaWxpdHlPYmplY3QsIG9mZnNldCk7Ci0gICAgaWYg
KCFvYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEVtaXQgcmVsYXRlZHNpZ25hbHMu
Ci0gICAgZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Uob2JqZWN0LmdldCgpLCBtX3NlbGVjdGlvbiwg
b2Zmc2V0KTsKLSAgICBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2Uob2JqZWN0LnJlbGVhc2UoKSk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLS0gCjEuNy45LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189519</attachid>
            <date>2013-02-21 06:40:50 -0800</date>
            <delta_ts>2013-02-25 08:11:07 -0800</delta_ts>
            <desc>applied Mario&apos;s comments</desc>
            <filename>bug110221.patch</filename>
            <type>text/plain</type>
            <size>11317</size>
            <attacher name="Mariusz Grzegorczyk">mariusz.g</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNTQyYTIyLi4zOGI0OWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTMtMDItMTggIE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF1bR1RLXSBNb3ZlIHRleHQgc2VsZWN0aW9uL2ZvY3VzIG5vdGlm
aWNhdGlvbiBmb3IgYTExeSBmcm9tIGd0ayB0byBhdGsgZGlyZWN0b3J5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyZSBpbXBsZW1lbnRhdGlvbiBi
ZXR3ZWVuIGVmbCBhbmQgZ3RrLgorICAgICAgICBVcGRhdGUgYnVpbGQgd2l0aCBjaGFuZ2VzIG1h
ZGUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBDaGFuZ2UgV2ViQ29yZS9lZGl0
aW5nL2d0ay9GcmFtZVNlbGVjdGlvbkd0ay5jcHAgdG8gV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFt
ZVNlbGVjdGlvbkF0ay5jcHAgdG8gYnVpbGQuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6
IEFkZCBXZWJDb3JlL2VkaXRpbmcvYXRrIHRvIGluY2x1ZGUgZGlyZWN0b3JpZXMsIGFkZCBXZWJj
b3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCB0byBidWlsZC4KKyAgICAgICAg
KiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6IE9taXQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZSgpIHN0dWIgZm9yIEVGTCBwb3J0LgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3BwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjplbWl0VGV4dFNlbGVjdGlvbkNoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjptYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UpOgorCiAyMDEzLTAyLTE4ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEphdmFTY3JpcHRTb3VyY2VGcmFtZSBzaG91
bGQgaW5oZXJpdCBVSVNvdXJjZUNvZGVGcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggZDcwYjFkMS4uYjRkOWM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBA
IC02MTA3LDcgKzYxMDcsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVVdGlsLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBw
ZXJBdGsuaCBcCi0JU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3RrL0F1ZGlvQnVzR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZs
LmNtYWtlCmluZGV4IGZlYWJjMjEuLjA2OTgzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0xLDQgKzEsNSBAQAogbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVT
CisgICAgIiR7V0VCQ09SRV9ESVJ9L2VkaXRpbmcvYXRrIgogICAgICIke1dFQkNPUkVfRElSfS9w
YWdlL2VmbCIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vY2Fpcm8iCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2VmbCIKQEAgLTM0LDYgKzM1LDggQEAgbGlzdChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCiAKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAKIAorICAgIGVk
aXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorCiAgICAgcGFnZS9lZmwvRHJhZ0NvbnRy
b2xsZXJFZmwuY3BwCiAgICAgcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMjY0NDJhMC4uMWZlMDQ3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMzI5LDcgKzMyOSw3IEBA
IGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVk
aXRpbmdTdHlsZT4gc3R5bGUpCiAgICAgbV90eXBpbmdTdHlsZSA9IHN0eWxlOwogfQogCi0jaWYg
IShQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oQ0hST01JVU0pKQor
I2lmICEoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKENIUk9NSVVN
KSB8fCBQTEFURk9STShFRkwpKQogaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjcyM2ZmODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTAsMCArMSwxMDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0
ay5oIgorCisjaWYgUExBVEZPUk0oRUZMKQorI2luY2x1ZGUgPGdsaWIuaD4KKyNlbHNlCisjaW5j
bHVkZSA8Z3RrL2d0ay5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHZvaWQgZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Uo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiwg
aW50IG9mZnNldCkKK3sKKyAgICBBdGtPYmplY3QqIGF4T2JqZWN0ID0gb2JqZWN0LT53cmFwcGVy
KCk7CisgICAgaWYgKCFheE9iamVjdCB8fCAhQVRLX0lTX1RFWFQoYXhPYmplY3QpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJ0ZXh0LWNh
cmV0LW1vdmVkIiwgb2Zmc2V0KTsKKyAgICBpZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSkKKyAgICAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAidGV4dC1zZWxlY3Rpb24tY2hhbmdl
ZCIpOworfQorCitzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCit7CisgICAgLy8gVGhpcyBzdGF0aWMg
dmFyaWFibGUgaXMgbmVlZGVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG9sZCBvYmplY3QKKyAgICAv
LyBhcyBwZXIgcHJldmlvdXMgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiwgaW4gb3JkZXIgdG8gcHJv
cGVybHkKKyAgICAvLyBkZWNpZGUgd2hldGhlciB0byBlbWl0IHNvbWUgc2lnbmFscyBvciBub3Qu
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIG9s
ZE9iamVjdCwgKCkpOworCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9
IHBycE9iamVjdDsKKworICAgIC8vIEVuc3VyZSB0aGUgb2xkT2JqZWN0IGJlbG9uZ3MgdG8gdGhl
IHNhbWUgZG9jdW1lbnQgdGhhdCB0aGUKKyAgICAvLyBjdXJyZW50IG9iamVjdCBzbyBmdXJ0aGVy
IGNvbXBhcmlzb25zIG1ha2Ugc2Vuc2UuIE90aGVyd2lzZSwKKyAgICAvLyBqdXN0IHJlc2V0IG9s
ZE9iamVjdCB0byAwIHNvIGl0IHdvbid0IGJlIHRha2VuIGludG8gYWNjb3VudCBpbgorICAgIC8v
IHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLgorICAgIGlm
IChvYmplY3QgJiYgb2xkT2JqZWN0ICYmIG9sZE9iamVjdC0+ZG9jdW1lbnQoKSAhPSBvYmplY3Qt
PmRvY3VtZW50KCkpCisgICAgICAgIG9sZE9iamVjdCA9IDA7CisKKyAgICBBdGtPYmplY3QqIGF4
T2JqZWN0ID0gb2JqZWN0ID8gb2JqZWN0LT53cmFwcGVyKCkgOiAwOworICAgIEF0a09iamVjdCog
b2xkQXhPYmplY3QgPSBvbGRPYmplY3QgPyBvbGRPYmplY3QtPndyYXBwZXIoKSA6IDA7CisKKyAg
ICBpZiAoYXhPYmplY3QgIT0gb2xkQXhPYmplY3QpIHsKKyAgICAgICAgaWYgKG9sZEF4T2JqZWN0
ICYmIEFUS19JU19URVhUKG9sZEF4T2JqZWN0KSkgeworICAgICAgICAgICAgZ19zaWduYWxfZW1p
dF9ieV9uYW1lKG9sZEF4T2JqZWN0LCAiZm9jdXMtZXZlbnQiLCBmYWxzZSk7CisgICAgICAgICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUob2xkQXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiZm9j
dXNlZCIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXhPYmplY3QgJiYgQVRLX0lT
X1RFWFQoYXhPYmplY3QpKSB7CisgICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhP
YmplY3QsICJmb2N1cy1ldmVudCIsIHRydWUpOworICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImZvY3VzZWQiLCB0cnVlKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIC8vIFVwZGF0ZSBwb2ludGVyIHRvIGxhc3QgZm9jdXNlZCBvYmpl
Y3QuCisgICAgb2xkT2JqZWN0ID0gb2JqZWN0OworfQorCisKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gUmV0dXJuIGZvciBubyB2YWxpZCBzZWxlY3Rpb25zLgorICAgIGlmICghbV9zZWxlY3Rp
b24uc3RhcnQoKS5pc05vdE51bGwoKSB8fCAhbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlck9iamVjdCogZm9jdXNlZE5vZGUgPSBtX3Nl
bGVjdGlvbi5lbmQoKS5jb250YWluZXJOb2RlKCktPnJlbmRlcmVyKCk7CisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eU9iamVjdCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmF4
T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZm9jdXNlZE5vZGUpOworCisgICAgLy8gTmVlZCB0
byBjaGVjayB0aGlzIGFzIGdldE9yQ3JlYXRlIGNvdWxkIHJldHVybiAwLgorICAgIGlmICghYWNj
ZXNzaWJpbGl0eU9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW50IG9mZnNldDsKKyAg
ICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2JqZWN0ID0gb2JqZWN0Rm9jdXNlZEFuZENh
cmV0T2Zmc2V0VW5pZ25vcmVkKGFjY2Vzc2liaWxpdHlPYmplY3QsIG9mZnNldCk7CisgICAgaWYg
KCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEVtaXQgcmVsYXRlZHNpZ25hbHMu
CisgICAgZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Uob2JqZWN0LmdldCgpLCBtX3NlbGVjdGlvbiwg
b2Zmc2V0KTsKKyAgICBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2Uob2JqZWN0LnJlbGVhc2UoKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDc5MmNkNC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9GcmFt
ZVNlbGVjdGlvbkd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCi0KLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCi0j
aW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5o
IgotCi0jaW5jbHVkZSA8Z3RrL2d0ay5oPgotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyB2b2lkIGVtaXRUZXh0U2VsZWN0aW9uQ2hhbmdl
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24s
IGludCBvZmZzZXQpCi17Ci0gICAgQXRrT2JqZWN0KiBheE9iamVjdCA9IG9iamVjdC0+d3JhcHBl
cigpOwotICAgIGlmICghYXhPYmplY3QgfHwgIUFUS19JU19URVhUKGF4T2JqZWN0KSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAidGV4dC1j
YXJldC1tb3ZlZCIsIG9mZnNldCk7Ci0gICAgaWYgKHNlbGVjdGlvbi5pc1JhbmdlKCkpCi0gICAg
ICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgInRleHQtc2VsZWN0aW9uLWNoYW5n
ZWQiKTsKLX0KLQotc3RhdGljIHZvaWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0KQotewotICAgIC8vIFRoaXMgc3RhdGlj
IHZhcmlhYmxlIGlzIG5lZWRlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBvbGQgb2JqZWN0Ci0gICAg
Ly8gYXMgcGVyIHByZXZpb3VzIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24sIGluIG9yZGVyIHRvIHBy
b3Blcmx5Ci0gICAgLy8gZGVjaWRlIHdoZXRoZXIgdG8gZW1pdCBzb21lIHNpZ25hbHMgb3Igbm90
LgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBv
bGRPYmplY3QsICgpKTsKLQotICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBvYmplY3Qg
PSBwcnBPYmplY3Q7Ci0KLSAgICAvLyBFbnN1cmUgdGhlIG9sZE9iamVjdCBiZWxvbmdzIHRvIHRo
ZSBzYW1lIGRvY3VtZW50IHRoYXQgdGhlCi0gICAgLy8gY3VycmVudCBvYmplY3Qgc28gZnVydGhl
ciBjb21wYXJpc29ucyBtYWtlIHNlbnNlLiBPdGhlcndpc2UsCi0gICAgLy8ganVzdCByZXNldCBv
bGRPYmplY3QgdG8gMCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291bnQgaW4KLSAgICAv
LyB0aGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGNhbGwgdG8gdGhpcyBmdW5jdGlvbi4KLSAgICBp
ZiAob2JqZWN0ICYmIG9sZE9iamVjdCAmJiBvbGRPYmplY3QtPmRvY3VtZW50KCkgIT0gb2JqZWN0
LT5kb2N1bWVudCgpKQotICAgICAgICBvbGRPYmplY3QgPSAwOwotCi0gICAgQXRrT2JqZWN0KiBh
eE9iamVjdCA9IG9iamVjdCA/IG9iamVjdC0+d3JhcHBlcigpIDogMDsKLSAgICBBdGtPYmplY3Qq
IG9sZEF4T2JqZWN0ID0gb2xkT2JqZWN0ID8gb2xkT2JqZWN0LT53cmFwcGVyKCkgOiAwOwotCi0g
ICAgaWYgKGF4T2JqZWN0ICE9IG9sZEF4T2JqZWN0KSB7Ci0gICAgICAgIGlmIChvbGRBeE9iamVj
dCAmJiBBVEtfSVNfVEVYVChvbGRBeE9iamVjdCkpIHsKLSAgICAgICAgICAgIGdfc2lnbmFsX2Vt
aXRfYnlfbmFtZShvbGRBeE9iamVjdCwgImZvY3VzLWV2ZW50IiwgZmFsc2UpOwotICAgICAgICAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG9sZEF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImZv
Y3VzZWQiLCBmYWxzZSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGF4T2JqZWN0ICYmIEFUS19J
U19URVhUKGF4T2JqZWN0KSkgewotICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4
T2JqZWN0LCAiZm9jdXMtZXZlbnQiLCB0cnVlKTsKLSAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShheE9iamVjdCwgInN0YXRlLWNoYW5nZSIsICJmb2N1c2VkIiwgdHJ1ZSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICAvLyBVcGRhdGUgcG9pbnRlciB0byBsYXN0IGZvY3VzZWQgb2Jq
ZWN0LgotICAgIG9sZE9iamVjdCA9IG9iamVjdDsKLX0KLQotCi12b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKLXsKLSAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIC8vIFJldHVybiBmb3Igbm8gdmFsaWQgc2VsZWN0aW9ucy4KLSAgICBpZiAoIW1fc2VsZWN0
aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgfHwgIW1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZW5kZXJPYmplY3QqIGZvY3VzZWROb2RlID0gbV9z
ZWxlY3Rpb24uZW5kKCkuY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOwotICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGFjY2Vzc2liaWxpdHlPYmplY3QgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5h
eE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGZvY3VzZWROb2RlKTsKLQotICAgIC8vIE5lZWQg
dG8gY2hlY2sgdGhpcyBhcyBnZXRPckNyZWF0ZSBjb3VsZCByZXR1cm4gMC4KLSAgICBpZiAoIWFj
Y2Vzc2liaWxpdHlPYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBvZmZzZXQ7Ci0g
ICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9IG9iamVjdEZvY3VzZWRBbmRD
YXJldE9mZnNldFVuaWdub3JlZChhY2Nlc3NpYmlsaXR5T2JqZWN0LCBvZmZzZXQpOwotICAgIGlm
ICghb2JqZWN0KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBFbWl0IHJlbGF0ZWRzaWduYWxz
LgotICAgIGVtaXRUZXh0U2VsZWN0aW9uQ2hhbmdlKG9iamVjdC5nZXQoKSwgbV9zZWxlY3Rpb24s
IG9mZnNldCk7Ci0gICAgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKG9iamVjdC5yZWxlYXNlKCkp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="209948"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190064</attachid>
            <date>2013-02-25 08:11:07 -0800</date>
            <delta_ts>2013-02-25 09:32:14 -0800</delta_ts>
            <desc>Applied Martin&apos;s suggestions.</desc>
            <filename>bug110221.patch</filename>
            <type>text/plain</type>
            <size>11169</size>
            <attacher name="Mariusz Grzegorczyk">mariusz.g</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlM2ZmZGI3Li4xYmZkYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTMtMDItMjUgIE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF1bR1RLXSBNb3ZlIHRleHQgc2VsZWN0aW9uL2ZvY3VzIG5vdGlm
aWNhdGlvbiBmb3IgYTExeSBmcm9tIGd0ayB0byBhdGsgZGlyZWN0b3J5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgU2hhcmUgaW1wbGVtZW50YXRpb24g
YmV0d2VlbiBlZmwgYW5kIGd0ay4KKyAgICAgICAgVXBkYXRlIGJ1aWxkIHdpdGggY2hhbmdlcyBt
YWRlLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQ2hhbmdlIFdlYkNvcmUvZWRp
dGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3BwIHRvIFdlYkNvcmUvZWRpdGluZy9hdGsvRnJh
bWVTZWxlY3Rpb25BdGsuY3BwIHRvIGJ1aWxkLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtl
OiBBZGQgV2ViQ29yZS9lZGl0aW5nL2F0ayB0byBpbmNsdWRlIGRpcmVjdG9yaWVzLCBhZGQgV2Vi
Y29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgdG8gYnVpbGQuCisgICAgICAg
ICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOiBPbWl0IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKSBzdHViIGZvciBFRkwgcG9ydC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3RrLmNwcC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6bWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKToKKwogMjAxMy0wMi0yNSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmVkdWNlIGFtb3VudCBvZiBjb2RlIHRoYXQgaW5jbHVkZXMgU3R5bGVQcm9w
ZXJ0eVNldC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA0ZGFjNThlLi44MjUy
MjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYxMTUsNyArNjExNSw3IEBA
IHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dGsvV2ViS2l0QWNjZXNzaWJsZVV0aWwuaCBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5oIFwKLQlTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2d0ay9GcmFtZVNlbGVjdGlvbkd0ay5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2d0
ay9FdmVudEhhbmRsZXJHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
dGsvQXVkaW9CdXNHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZDFkNDYz
Zi4uNTM1ZmJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEsNCArMSw1IEBACiBs
aXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vZWRpdGluZy9hdGsiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2UvZWZsIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
ZWZsIgpAQCAtMzQsNiArMzUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAg
IGVkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcAogCisgICAgZWRpdGluZy9hdGsvRnJhbWVTZWxl
Y3Rpb25BdGsuY3BwCisKICAgICBwYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAKICAgICBw
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaAppbmRleCAyNjQ0MmEwLi4xZmUwNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zMjksNyArMzI5LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkK
ICAgICBtX3R5cGluZ1N0eWxlID0gc3R5bGU7CiB9CiAKLSNpZiAhKFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShDSFJPTUlVTSkpCisjaWYgIShQTEFURk9STShNQUMp
IHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKEVGTCkp
CiBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFt
ZVNlbGVjdGlvbkF0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU0
OGU2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1l
U2VsZWN0aW9uQXRrLmNwcApAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmgiCisKKyNpZiBQTEFURk9S
TShFRkwpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2Vsc2UKKyNpbmNsdWRlIDxndGsvZ3RrLmg+Cisj
ZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGF0aWMgdm9pZCBlbWl0VGV4dFNlbGVjdGlvbkNoYW5nZShBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uLCBpbnQgb2Zmc2V0KQoreworICAg
IEF0a09iamVjdCogYXhPYmplY3QgPSBvYmplY3QtPndyYXBwZXIoKTsKKyAgICBpZiAoIWF4T2Jq
ZWN0IHx8ICFBVEtfSVNfVEVYVChheE9iamVjdCkpCisgICAgICAgIHJldHVybjsKKworICAgIGdf
c2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgInRleHQtY2FyZXQtbW92ZWQiLCBvZmZzZXQp
OworICAgIGlmIChzZWxlY3Rpb24uaXNSYW5nZSgpKQorICAgICAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUoYXhPYmplY3QsICJ0ZXh0LXNlbGVjdGlvbi1jaGFuZ2VkIik7Cit9CisKK3N0YXRpYyB2
b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IHBycE9iamVjdCkKK3sKKyAgICAvLyBUaGlzIHN0YXRpYyB2YXJpYWJsZSBpcyBuZWVkZWQg
dG8ga2VlcCB0cmFjayBvZiB0aGUgb2xkIG9iamVjdAorICAgIC8vIGFzIHBlciBwcmV2aW91cyBj
YWxscyB0byB0aGlzIGZ1bmN0aW9uLCBpbiBvcmRlciB0byBwcm9wZXJseQorICAgIC8vIGRlY2lk
ZSB3aGV0aGVyIHRvIGVtaXQgc29tZSBzaWduYWxzIG9yIG5vdC4KKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwgb2xkT2JqZWN0LCAoKSk7CisKKyAg
ICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2JqZWN0ID0gcHJwT2JqZWN0OworCisgICAg
Ly8gRW5zdXJlIHRoZSBvbGRPYmplY3QgYmVsb25ncyB0byB0aGUgc2FtZSBkb2N1bWVudCB0aGF0
IHRoZQorICAgIC8vIGN1cnJlbnQgb2JqZWN0IHNvIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBz
ZW5zZS4gT3RoZXJ3aXNlLAorICAgIC8vIGp1c3QgcmVzZXQgb2xkT2JqZWN0IHRvIDAgc28gaXQg
d29uJ3QgYmUgdGFrZW4gaW50byBhY2NvdW50IGluCisgICAgLy8gdGhlIGltbWVkaWF0ZWx5IGZv
bGxvd2luZyBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgICAgaWYgKG9iamVjdCAmJiBvbGRPYmpl
Y3QgJiYgb2xkT2JqZWN0LT5kb2N1bWVudCgpICE9IG9iamVjdC0+ZG9jdW1lbnQoKSkKKyAgICAg
ICAgb2xkT2JqZWN0ID0gMDsKKworICAgIEF0a09iamVjdCogYXhPYmplY3QgPSBvYmplY3QgPyBv
YmplY3QtPndyYXBwZXIoKSA6IDA7CisgICAgQXRrT2JqZWN0KiBvbGRBeE9iamVjdCA9IG9sZE9i
amVjdCA/IG9sZE9iamVjdC0+d3JhcHBlcigpIDogMDsKKworICAgIGlmIChheE9iamVjdCAhPSBv
bGRBeE9iamVjdCkgeworICAgICAgICBpZiAob2xkQXhPYmplY3QgJiYgQVRLX0lTX1RFWFQob2xk
QXhPYmplY3QpKSB7CisgICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUob2xkQXhPYmpl
Y3QsICJmb2N1cy1ldmVudCIsIGZhbHNlKTsKKyAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlf
bmFtZShvbGRBeE9iamVjdCwgInN0YXRlLWNoYW5nZSIsICJmb2N1c2VkIiwgZmFsc2UpOworICAg
ICAgICB9CisgICAgICAgIGlmIChheE9iamVjdCAmJiBBVEtfSVNfVEVYVChheE9iamVjdCkpIHsK
KyAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgImZvY3VzLWV2ZW50
IiwgdHJ1ZSk7CisgICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJz
dGF0ZS1jaGFuZ2UiLCAiZm9jdXNlZCIsIHRydWUpOworICAgICAgICB9CisgICAgfQorCisgICAg
Ly8gVXBkYXRlIHBvaW50ZXIgdG8gbGFzdCBmb2N1c2VkIG9iamVjdC4KKyAgICBvbGRPYmplY3Qg
PSBvYmplY3Q7Cit9CisKKwordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fc2VsZWN0aW9u
LnN0YXJ0KCkuaXNOb3ROdWxsKCkgfHwgIW1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJPYmplY3QqIGZvY3VzZWROb2RlID0gbV9zZWxl
Y3Rpb24uZW5kKCkuY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGFjY2Vzc2liaWxpdHlPYmplY3QgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5heE9i
amVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGZvY3VzZWROb2RlKTsKKyAgICBpZiAoIWFjY2Vzc2li
aWxpdHlPYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBvZmZzZXQ7CisgICAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9IG9iamVjdEZvY3VzZWRBbmRDYXJldE9m
ZnNldFVuaWdub3JlZChhY2Nlc3NpYmlsaXR5T2JqZWN0LCBvZmZzZXQpOworICAgIGlmICghb2Jq
ZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBlbWl0VGV4dFNlbGVjdGlvbkNoYW5nZShvYmpl
Y3QuZ2V0KCksIG1fc2VsZWN0aW9uLCBvZmZzZXQpOworICAgIG1heWJlRW1pdFRleHRGb2N1c0No
YW5nZShvYmplY3QucmVsZWFzZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzkyY2Q0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3RrLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0gCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKLQotI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIldlYktp
dEFjY2Vzc2libGVXcmFwcGVyQXRrLmgiCi0KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0KLSNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIHZvaWQg
ZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBWaXNp
YmxlU2VsZWN0aW9uIHNlbGVjdGlvbiwgaW50IG9mZnNldCkKLXsKLSAgICBBdGtPYmplY3QqIGF4
T2JqZWN0ID0gb2JqZWN0LT53cmFwcGVyKCk7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhQVRLX0lT
X1RFWFQoYXhPYmplY3QpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUoYXhPYmplY3QsICJ0ZXh0LWNhcmV0LW1vdmVkIiwgb2Zmc2V0KTsKLSAgICBpZiAoc2Vs
ZWN0aW9uLmlzUmFuZ2UoKSkKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0
LCAidGV4dC1zZWxlY3Rpb24tY2hhbmdlZCIpOwotfQotCi1zdGF0aWMgdm9pZCBtYXliZUVtaXRU
ZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3Qp
Ci17Ci0gICAgLy8gVGhpcyBzdGF0aWMgdmFyaWFibGUgaXMgbmVlZGVkIHRvIGtlZXAgdHJhY2sg
b2YgdGhlIG9sZCBvYmplY3QKLSAgICAvLyBhcyBwZXIgcHJldmlvdXMgY2FsbHMgdG8gdGhpcyBm
dW5jdGlvbiwgaW4gb3JkZXIgdG8gcHJvcGVybHkKLSAgICAvLyBkZWNpZGUgd2hldGhlciB0byBl
bWl0IHNvbWUgc2lnbmFscyBvciBub3QuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8
QWNjZXNzaWJpbGl0eU9iamVjdD4sIG9sZE9iamVjdCwgKCkpOwotCi0gICAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IG9iamVjdCA9IHBycE9iamVjdDsKLQotICAgIC8vIEVuc3VyZSB0aGUg
b2xkT2JqZWN0IGJlbG9uZ3MgdG8gdGhlIHNhbWUgZG9jdW1lbnQgdGhhdCB0aGUKLSAgICAvLyBj
dXJyZW50IG9iamVjdCBzbyBmdXJ0aGVyIGNvbXBhcmlzb25zIG1ha2Ugc2Vuc2UuIE90aGVyd2lz
ZSwKLSAgICAvLyBqdXN0IHJlc2V0IG9sZE9iamVjdCB0byAwIHNvIGl0IHdvbid0IGJlIHRha2Vu
IGludG8gYWNjb3VudCBpbgotICAgIC8vIHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbCB0
byB0aGlzIGZ1bmN0aW9uLgotICAgIGlmIChvYmplY3QgJiYgb2xkT2JqZWN0ICYmIG9sZE9iamVj
dC0+ZG9jdW1lbnQoKSAhPSBvYmplY3QtPmRvY3VtZW50KCkpCi0gICAgICAgIG9sZE9iamVjdCA9
IDA7Ci0KLSAgICBBdGtPYmplY3QqIGF4T2JqZWN0ID0gb2JqZWN0ID8gb2JqZWN0LT53cmFwcGVy
KCkgOiAwOwotICAgIEF0a09iamVjdCogb2xkQXhPYmplY3QgPSBvbGRPYmplY3QgPyBvbGRPYmpl
Y3QtPndyYXBwZXIoKSA6IDA7Ci0KLSAgICBpZiAoYXhPYmplY3QgIT0gb2xkQXhPYmplY3QpIHsK
LSAgICAgICAgaWYgKG9sZEF4T2JqZWN0ICYmIEFUS19JU19URVhUKG9sZEF4T2JqZWN0KSkgewot
ICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG9sZEF4T2JqZWN0LCAiZm9jdXMtZXZl
bnQiLCBmYWxzZSk7Ci0gICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUob2xkQXhPYmpl
Y3QsICJzdGF0ZS1jaGFuZ2UiLCAiZm9jdXNlZCIsIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoYXhPYmplY3QgJiYgQVRLX0lTX1RFWFQoYXhPYmplY3QpKSB7Ci0gICAgICAgICAgICBn
X3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJmb2N1cy1ldmVudCIsIHRydWUpOwotICAg
ICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwg
ImZvY3VzZWQiLCB0cnVlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFVwZGF0ZSBwb2lu
dGVyIHRvIGxhc3QgZm9jdXNlZCBvYmplY3QuCi0gICAgb2xkT2JqZWN0ID0gb2JqZWN0OwotfQot
Ci0KLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKQotewotICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gUmV0dXJuIGZvciBubyB2YWxpZCBzZWxlY3Rp
b25zLgotICAgIGlmICghbV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSB8fCAhbV9zZWxl
Y3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlck9i
amVjdCogZm9jdXNlZE5vZGUgPSBtX3NlbGVjdGlvbi5lbmQoKS5jb250YWluZXJOb2RlKCktPnJl
bmRlcmVyKCk7Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eU9iamVjdCA9
IG1fZnJhbWUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZm9jdXNl
ZE5vZGUpOwotCi0gICAgLy8gTmVlZCB0byBjaGVjayB0aGlzIGFzIGdldE9yQ3JlYXRlIGNvdWxk
IHJldHVybiAwLgotICAgIGlmICghYWNjZXNzaWJpbGl0eU9iamVjdCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaW50IG9mZnNldDsKLSAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2Jq
ZWN0ID0gb2JqZWN0Rm9jdXNlZEFuZENhcmV0T2Zmc2V0VW5pZ25vcmVkKGFjY2Vzc2liaWxpdHlP
YmplY3QsIG9mZnNldCk7Ci0gICAgaWYgKCFvYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAg
IC8vIEVtaXQgcmVsYXRlZHNpZ25hbHMuCi0gICAgZW1pdFRleHRTZWxlY3Rpb25DaGFuZ2Uob2Jq
ZWN0LmdldCgpLCBtX3NlbGVjdGlvbiwgb2Zmc2V0KTsKLSAgICBtYXliZUVtaXRUZXh0Rm9jdXND
aGFuZ2Uob2JqZWN0LnJlbGVhc2UoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>