<?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>94086</bug_id>
          
          <creation_ts>2012-08-15 01:58:51 -0700</creation_ts>
          <short_desc>[Chromium] Make the popup positioning code testable</short_desc>
          <delta_ts>2012-08-20 19:34:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>94087</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>apavlov</cc>
    
    <cc>dglazkov</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>695842</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-15 01:58:51 -0700</bug_when>
    <thetext>We have complex logic in PopupContainer::layoutAndCalculateWidgetRect(). But we don&apos;t have automated tests for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697984</commentid>
    <comment_count>1</comment_count>
      <attachid>159028</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-17 00:43:32 -0700</bug_when>
    <thetext>Created attachment 159028
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698021</commentid>
    <comment_count>2</comment_count>
      <attachid>159028</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 01:14:08 -0700</bug_when>
    <thetext>Comment on attachment 159028
Patch 1

Attachment 159028 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13518513</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698032</commentid>
    <comment_count>3</comment_count>
      <attachid>159043</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-17 01:22:07 -0700</bug_when>
    <thetext>Created attachment 159043
Patch 2

Fix signed-unsinged comparison</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700318</commentid>
    <comment_count>4</comment_count>
      <attachid>159043</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-08-20 18:41:26 -0700</bug_when>
    <thetext>Comment on attachment 159043
Patch 2

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

&gt; Source/WebCore/platform/chromium/PopupContainer.h:122
&gt; +    static IntRect layoutAndCalculateWidgetRectInternal(IntRect widgetRectInScreen, int targetControlHeight, const FloatRect&amp; windowRect, const FloatRect&amp; screen, bool isRTL, const int rtlOffset, PopupContent*, bool&amp; needToResizeView);

This method has too many parameters. Probably these can be packed into a separate class then this method can be a part of that class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700321</commentid>
    <comment_count>5</comment_count>
      <attachid>159043</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-20 18:46:14 -0700</bug_when>
    <thetext>Comment on attachment 159043
Patch 2

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

&gt;&gt; Source/WebCore/platform/chromium/PopupContainer.h:122
&gt;&gt; +    static IntRect layoutAndCalculateWidgetRectInternal(IntRect widgetRectInScreen, int targetControlHeight, const FloatRect&amp; windowRect, const FloatRect&amp; screen, bool isRTL, const int rtlOffset, PopupContent*, bool&amp; needToResizeView);
&gt; 
&gt; This method has too many parameters. Probably these can be packed into a separate class then this method can be a part of that class.

Sounds good.  I might work on it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700362</commentid>
    <comment_count>6</comment_count>
      <attachid>159043</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 19:34:04 -0700</bug_when>
    <thetext>Comment on attachment 159043
Patch 2

Clearing flags on attachment: 159043

Committed r126121: &lt;http://trac.webkit.org/changeset/126121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700363</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 19:34:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159028</attachid>
            <date>2012-08-17 00:43:32 -0700</date>
            <delta_ts>2012-08-17 01:22:02 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-94086-20120817164256.patch</filename>
            <type>text/plain</type>
            <size>15669</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhhZmI0ZmNlYTI2MTIy
ZmNiZjJjYWNjYjljOWZhM2Q2NGI0OWE0ZS4uZjNlYzI3YjAwM2M2Mjk5ZmYzNmMwYzJmNDIzZDE2
OGJlYjJjNmVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA4LTE3ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1ha2Ug
dGhlIHBvcHVwIHBvc2l0aW9uaW5nIGNvZGUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIFBvcHVwQ29udGVudCBpbnRlcmZh
Y2UgaW4gb3JkZXIgdG8gbWFrZSBhIG1vY2suCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cENvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cENvbnRhaW5lcjo6
bGF5b3V0QW5kQ2FsY3VsYXRlV2lkZ2V0UmVjdEludGVybmFsKToKKyAgICAgICAgIC0gTWFrZSBp
dCBhIG1lbWJlciBvZiBQb3B1cENvbnRhaW5lciB0byBhdm9pZCBuYW1lc3BhY2UgcG9sbHV0aW9u
LgorICAgICAgICAgLSBVc2UgUG9wdXBDb250ZW50IGludGVyZmFjZS4KKyAgICAgICAgIC0gTWFr
ZSB0aGUgY29kZSBjbGVhcmVyLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29u
dGFpbmVyLmg6CisgICAgICAgIChQb3B1cENvbnRhaW5lcik6IEV4cG9zZSBsYXlvdXRBbmRDYWxj
dWxhdGVXaWRnZXRSZWN0SW50ZXJuYWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cExpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94Ojpwb3B1cENv
bnRlbnRIZWlnaHQpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExp
c3RCb3guaDoKKyAgICAgICAgKFBvcHVwQ29udGVudCk6IEFkZGVkLgorICAgICAgICAoUG9wdXBM
aXN0Qm94KTogSW5oZXJpdCBQb3B1cENvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cExp
c3RCb3g6On5Qb3B1cExpc3RCb3gpOgorICAgICAgICBNYWtlIHRoaXMgdmlydHVhbCBiZWNhdXNl
IHRoaXMgY2xhc3MgaGFzIHNvbWUgdmlydHVhbCBmdW5jdGlvbnMuCisKIDIwMTItMDgtMTYgIE5p
Y28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bS9tYWNd
IFJlbW92ZSBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFRleHRGaWVsZCBvdmVycmlkZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhMGE1N2IyYTcxMWY5ZjUwZWU0YmZkYjE2YTlk
NmRhNDFkNWZkNzkxLi40YWYzMDllN2NkODZjNjQzN2ZmMDVhYzdhNzhjMzIxMGVhYTcyMTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA4LTE3ICBL
ZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1h
a2UgdGhlIHBvcHVwIHBvc2l0aW9uaW5nIGNvZGUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaTogQWRkIFBvcHVwQ29u
dGFpbmVyVGVzdC5jcHAuCisgICAgICAgICogdGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChNb2NrUG9wdXBDb250ZW50KToKKyAgICAgICAgKGNhbGN1bGF0ZVBv
c2l0aW9uKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDEyLTA4LTE2ICBBbnRvaW5lIExhYm91ciAg
PHBpbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCByZXNvdXJjZSB0
cmFuc2ZlciBmdW5jdGlvbnMgdG8gQ0NSZXNvdXJjZVByb3ZpZGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAKaW5kZXggOWRhZTlm
NTNlY2RjN2ZmNjU4NzllZmY5MzU4YWQ3YzVhZjc0NGVlZi4uM2RlYjk1YTkyOGJlYzkxYzhhYjY4
MjZhZGZmNTMzZDhiN2FkZDllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwQ29udGFpbmVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIFBvcHVwQ29u
dGFpbmVyOjp+UG9wdXBDb250YWluZXIoKQogICAgICAgICByZW1vdmVDaGlsZChtX2xpc3RCb3gu
Z2V0KCkpOwogfQogCi1zdGF0aWMgSW50UmVjdCBsYXlvdXRBbmRDYWxjdWxhdGVXaWRnZXRSZWN0
SW50ZXJuYWwoSW50UmVjdCB3aWRnZXRSZWN0SW5TY3JlZW4sIGludCB0YXJnZXRDb250cm9sSGVp
Z2h0LCBjb25zdCBGbG9hdFJlY3QmIHdpbmRvd1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVu
LCBib29sIGlzUlRMLCBjb25zdCBpbnQgcnRsT2Zmc2V0LCBQb3B1cExpc3RCb3gqIGxpc3RCb3gs
IGJvb2wmIG5lZWRUb1Jlc2l6ZVZpZXcpCitJbnRSZWN0IFBvcHVwQ29udGFpbmVyOjpsYXlvdXRB
bmRDYWxjdWxhdGVXaWRnZXRSZWN0SW50ZXJuYWwoSW50UmVjdCB3aWRnZXRSZWN0SW5TY3JlZW4s
IGludCB0YXJnZXRDb250cm9sSGVpZ2h0LCBjb25zdCBGbG9hdFJlY3QmIHdpbmRvd1JlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc2NyZWVuLCBib29sIGlzUlRMLCBjb25zdCBpbnQgcnRsT2Zmc2V0LCBQ
b3B1cENvbnRlbnQqIGxpc3RCb3gsIGJvb2wmIG5lZWRUb1Jlc2l6ZVZpZXcpCiB7CiAgICAgQVNT
RVJUKGxpc3RCb3gpOwogICAgIGlmICh3aW5kb3dSZWN0LngoKSA+PSBzY3JlZW4ueCgpICYmIHdp
bmRvd1JlY3QubWF4WCgpIDw9IHNjcmVlbi5tYXhYKCkgJiYgKHdpZGdldFJlY3RJblNjcmVlbi54
KCkgPCBzY3JlZW4ueCgpIHx8IHdpZGdldFJlY3RJblNjcmVlbi5tYXhYKCkgPiBzY3JlZW4ubWF4
WCgpKSkgewpAQCAtMTM1LDkgKzEzNSw4IEBAIHN0YXRpYyBJbnRSZWN0IGxheW91dEFuZENhbGN1
bGF0ZVdpZGdldFJlY3RJbnRlcm5hbChJbnRSZWN0IHdpZGdldFJlY3RJblNjcmVlbiwKICAgICAg
ICAgICAgIHdpZGdldFJlY3RJblNjcmVlbiA9IGludmVyc2VXaWRnZXRSZWN0SW5TY3JlZW47CiAK
ICAgICAgICAgaWYgKHdpZGdldFJlY3RJblNjcmVlbi54KCkgPCBzY3JlZW4ueCgpKSB7Ci0gICAg
ICAgICAgICB1bnNpZ25lZCB3aWRnZXRSaWdodCA9IHdpZGdldFJlY3RJblNjcmVlbi5tYXhYKCk7
CiAgICAgICAgICAgICB3aWRnZXRSZWN0SW5TY3JlZW4uc2V0V2lkdGgod2lkZ2V0UmVjdEluU2Ny
ZWVuLm1heFgoKSAtIHNjcmVlbi54KCkpOwotICAgICAgICAgICAgd2lkZ2V0UmVjdEluU2NyZWVu
LnNldFgod2lkZ2V0UmlnaHQgLSB3aWRnZXRSZWN0SW5TY3JlZW4ud2lkdGgoKSk7CisgICAgICAg
ICAgICB3aWRnZXRSZWN0SW5TY3JlZW4uc2V0WChzY3JlZW4ueCgpKTsKICAgICAgICAgICAgIGxp
c3RCb3gtPnNldE1heFdpZHRoQW5kTGF5b3V0KHN0ZDo6bWF4KHdpZGdldFJlY3RJblNjcmVlbi53
aWR0aCgpIC0ga0JvcmRlclNpemUgKiAyLCAwKSk7CiAgICAgICAgIH0gZWxzZSBpZiAod2lkZ2V0
UmVjdEluU2NyZWVuLm1heFgoKSA+IHNjcmVlbi5tYXhYKCkpIHsKICAgICAgICAgICAgIHdpZGdl
dFJlY3RJblNjcmVlbi5zZXRXaWR0aChzY3JlZW4ubWF4WCgpIC0gd2lkZ2V0UmVjdEluU2NyZWVu
LngoKSk7CkBAIC0xNjEsNyArMTYwLDcgQEAgc3RhdGljIEludFJlY3QgbGF5b3V0QW5kQ2FsY3Vs
YXRlV2lkZ2V0UmVjdEludGVybmFsKEludFJlY3Qgd2lkZ2V0UmVjdEluU2NyZWVuLAogICAgICAg
ICAgICAgICAgIGxpc3RCb3gtPnNldE1heEhlaWdodChzcGFjZUJlbG93KTsKICAgICAgICAgICAg
IGxpc3RCb3gtPmxheW91dCgpOwogICAgICAgICAgICAgbmVlZFRvUmVzaXplVmlldyA9IHRydWU7
Ci0gICAgICAgICAgICB3aWRnZXRSZWN0SW5TY3JlZW4uc2V0SGVpZ2h0KGxpc3RCb3gtPmhlaWdo
dCgpICsga0JvcmRlclNpemUgKiAyKTsKKyAgICAgICAgICAgIHdpZGdldFJlY3RJblNjcmVlbi5z
ZXRIZWlnaHQobGlzdEJveC0+cG9wdXBDb250ZW50SGVpZ2h0KCkgKyBrQm9yZGVyU2l6ZSAqIDIp
OwogICAgICAgICAgICAgLy8gTW92ZSBXZWJXaWRnZXQgdXB3YXJkcyBpZiBuZWNlc3NhcnkuCiAg
ICAgICAgICAgICBpZiAoc3BhY2VBYm92ZSA+IHNwYWNlQmVsb3cpCiAgICAgICAgICAgICAgICAg
d2lkZ2V0UmVjdEluU2NyZWVuLm1vdmUoMCwgLSh3aWRnZXRSZWN0SW5TY3JlZW4uaGVpZ2h0KCkg
KyB0YXJnZXRDb250cm9sSGVpZ2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBDb250YWluZXIuaAppbmRleCAyMTg4NWMzOWEyZGMxYmZjYTM1MjhmNWZk
Mzg0NmNlYzZiODdjNmYyLi43OGQ2ZWI4ODA1NDExYmJlYmYyOGRmMjNkODVmZTFmZWZmYzVkZmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRh
aW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29udGFp
bmVyLmgKQEAgLTExOCw2ICsxMTgsMTAgQEAgcHVibGljOgogICAgIC8vIFdoaWxlIGhvdmVyaW5n
IHBvcHVwIG1lbnUgd2luZG93LCB3ZSB3YW50IHRvIHNob3cgdG9vbCB0aXAgbWVzc2FnZS4KICAg
ICBTdHJpbmcgZ2V0U2VsZWN0ZWRJdGVtVG9vbFRpcCgpOwogCisgICAgLy8gVGhpcyBpcyBwdWJs
aWMgZm9yIHRlc3RpbmcuCisgICAgc3RhdGljIEludFJlY3QgbGF5b3V0QW5kQ2FsY3VsYXRlV2lk
Z2V0UmVjdEludGVybmFsKEludFJlY3Qgd2lkZ2V0UmVjdEluU2NyZWVuLCBpbnQgdGFyZ2V0Q29u
dHJvbEhlaWdodCwgY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNjcmVlbiwgYm9vbCBpc1JUTCwgY29uc3QgaW50IHJ0bE9mZnNldCwgUG9wdXBDb250ZW50Kiwg
Ym9vbCYgbmVlZFRvUmVzaXplVmlldyk7CisKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
V1RGOjpSZWZDb3VudGVkPFBvcHVwQ29udGFpbmVyPjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAKaW5kZXggODk1YzJhZWVmM2RhMzQ0
ZWY3MWRmNDU5NDc0MmFhOTg1NzFhNDdlNC4uYzc1YTJmZjNkODg3OGU3MjI3YTY3YTgyZGJlMzk0
NzVkNDE2MGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cExpc3RCb3guY3BwCkBAIC05MDgsNCArOTA4LDkgQEAgYm9vbCBQb3B1cExpc3RCb3g6Omlz
UG9pbnRJbkJvdW5kcyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgcmV0dXJuIG51bUl0ZW1z
KCkgJiYgSW50UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSkuY29udGFpbnMocG9pbnQpOwog
fQogCitpbnQgUG9wdXBMaXN0Qm94Ojpwb3B1cENvbnRlbnRIZWlnaHQoKSBjb25zdAoreworICAg
IHJldHVybiBoZWlnaHQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAppbmRleCBkYzhlM2Jm
OGQwMTExNzg4MjIwN2RkYTUxMDcwYjQwM2IyN2I2OTAwLi41MjIzNzZlYzM4ZDQ4ZGZlNGU4YjJj
ZTNlZDU3MGNmNzdkMmI3OGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cExpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guaApAQCAtODUsNiArODUsMTUgQEAgc3RydWN0IFBvcHVwQ29udGFp
bmVyU2V0dGluZ3MgewogICAgIGJvb2wgZGV2aWNlU3VwcG9ydHNUb3VjaDsKIH07CiAKK2NsYXNz
IFBvcHVwQ29udGVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0TWF4SGVpZ2h0KGludCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRNYXhXaWR0aEFuZExheW91dChpbnQpID0gMDsKKyAgICB2aXJ0dWFsIGludCBwb3B1cENv
bnRlbnRIZWlnaHQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB+UG9wdXBDb250ZW50KCkgeyB9
OworfTsKKwogLy8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAo
ZS5nLiByZXByZXNlbnRlZCBieSA8b3B0aW9uPgogLy8gb3IgPG9wdGdyb3VwPiBpbiBhIDxzZWxl
Y3Q+IHdpZGdldCkgYW5kIGlzIHVzZWQgYnkgUG9wdXBMaXN0Qm94Lgogc3RydWN0IFBvcHVwSXRl
bSB7CkBAIC0xMTAsNyArMTE5LDcgQEAgc3RydWN0IFBvcHVwSXRlbSB7CiAKIC8vIFRoaXMgY2xh
c3MgdXNlcyBXZWJDb3JlIGNvZGUgdG8gcGFpbnQgYW5kIGhhbmRsZSBldmVudHMgZm9yIGEgZHJv
cC1kb3duIGxpc3QKIC8vIGJveCAoImNvbWJvYm94IiBvbiBXaW5kb3dzKS4KLWNsYXNzIFBvcHVw
TGlzdEJveCA6IHB1YmxpYyBGcmFtZWxlc3NTY3JvbGxWaWV3IHsKK2NsYXNzIFBvcHVwTGlzdEJv
eCA6IHB1YmxpYyBGcmFtZWxlc3NTY3JvbGxWaWV3LCBwdWJsaWMgUG9wdXBDb250ZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQb3B1cExpc3RCb3g+IGNyZWF0ZShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCwgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyYgc2V0dGluZ3Mp
CiAgICAgewpAQCAtMTY0LDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJhc2VXaWR0
aChpbnQgd2lkdGgpIHsgbV9iYXNlV2lkdGggPSBzdGQ6Om1pbihtX21heFdpbmRvd1dpZHRoLCB3
aWR0aCk7IH0KIAogICAgIC8vIENvbXB1dGVzIHRoZSBzaXplIG9mIHdpZGdldCBhbmQgY2hpbGRy
ZW4uCi0gICAgdm9pZCBsYXlvdXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJ
REU7CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHBvcHVwIHdhbnRzIHRvIHByb2Nlc3Mg
ZXZlbnRzIGZvciB0aGUgcGFzc2VkIGtleS4KICAgICBib29sIGlzSW50ZXJlc3RlZEluRXZlbnRG
b3JLZXkoaW50IGtleUNvZGUpOwpAQCAtMTcyLDIzICsxODEsMjUgQEAgcHVibGljOgogICAgIC8v
IEdldHMgdGhlIGhlaWdodCBvZiBhIHJvdy4KICAgICBpbnQgZ2V0Um93SGVpZ2h0KGludCBpbmRl
eCk7CiAKLSAgICB2b2lkIHNldE1heEhlaWdodChpbnQgbWF4SGVpZ2h0KSB7IG1fbWF4SGVpZ2h0
ID0gbWF4SGVpZ2h0OyB9CisgICAgdmlydHVhbCB2b2lkIHNldE1heEhlaWdodChpbnQgbWF4SGVp
Z2h0KSBPVkVSUklERSB7IG1fbWF4SGVpZ2h0ID0gbWF4SGVpZ2h0OyB9CiAKICAgICB2b2lkIHNl
dE1heFdpZHRoKGludCBtYXhXaWR0aCkgeyBtX21heFdpbmRvd1dpZHRoID0gbWF4V2lkdGg7IH0K
IAotICAgIHZvaWQgc2V0TWF4V2lkdGhBbmRMYXlvdXQoaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0TWF4V2lkdGhBbmRMYXlvdXQoaW50KSBPVkVSUklERTsKIAogICAgIHZvaWQgZGlzY29ubmVj
dENsaWVudCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KIAogICAgIGNvbnN0IFZlY3RvcjxQb3B1
cEl0ZW0qPiYgaXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1zOyB9CiAKKyAgICB2aXJ0dWFs
IGludCBwb3B1cENvbnRlbnRIZWlnaHQoKSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgUG9wdXBDb250YWluZXI7CiAgICAgZnJpZW5kIGNsYXNzIFJlZkNvdW50
ZWQ8UG9wdXBMaXN0Qm94PjsKIAogICAgIFBvcHVwTGlzdEJveChQb3B1cE1lbnVDbGllbnQqLCBj
b25zdCBQb3B1cENvbnRhaW5lclNldHRpbmdzJik7CiAKLSAgICB+UG9wdXBMaXN0Qm94KCkKKyAg
ICB2aXJ0dWFsIH5Qb3B1cExpc3RCb3goKQogICAgIHsKICAgICAgICAgY2xlYXIoKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCAxMmMxNDlhOTkxOTU3YzYzZTAwODAx
NzZhY2UxNmJlMmExODA2OWUyLi41ZWFiNDg3YTVjMTcxZDBmZmY4OTAyYTMxYTE2NTZiMjdhOGQ0
Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTE0MCw2ICsxNDAsNyBAQAog
ICAgICAgICAgICAgJ3Rlc3RzL1BPREFyZW5hVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3Rz
L1BPREludGVydmFsVHJlZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9QT0RSZWRCbGFj
a1RyZWVUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NQcmlvcml0aXplZFRleHR1cmVUZXN0LmNwcCcsCiAg
ICAgICAgICAgICAndGVzdHMvUmVnaW9uVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1Jl
bmRlclRhYmxlQ2VsbFRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWIzNTE3YzBkOTc5ZmNk
ODAzMTA1OTY1ZDIxOTIxMjkwNzZhZTBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9Qb3B1cENvbnRhaW5lclRlc3QuY3BwCkBAIC0wLDAgKzEsMTU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICog
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvcHVw
Q29udGFpbmVyLmgiCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworY2xhc3MgTW9ja1BvcHVwQ29udGVudCA6IHB1YmxpYyBQb3B1cENvbnRl
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRNYXhIZWlnaHQoaW50IG1heCkgT1ZF
UlJJREUgeyBtYXhIZWlnaHQgPSBtYXg7IH0KKyAgICB2aXJ0dWFsIGludCBwb3B1cENvbnRlbnRI
ZWlnaHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBoZWlnaHQ7IH0KKyAgICB2aXJ0dWFsIH5N
b2NrUG9wdXBDb250ZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJ
REUKKyAgICB7CisgICAgICAgIGxheW91dENvdW50Kys7CisgICAgICAgIHdpZHRoID0gc3RkOjpt
aW4obWF4V2lkdGgsIHdpZHRoKTsKKyAgICAgICAgaGVpZ2h0ID0gc3RkOjptaW4obWF4SGVpZ2h0
LCBoZWlnaHQpOworICAgICAgICBoZWlnaHQgLT0gaGVpZ2h0ICUgMTY7CisgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIHNldE1heFdpZHRoQW5kTGF5b3V0KGludCBtYXgpIE9WRVJSSURFCisgICAg
eworICAgICAgICBtYXhXaWR0aCA9IG1heDsKKyAgICAgICAgbGF5b3V0KCk7CisgICAgfQorCisg
ICAgTW9ja1BvcHVwQ29udGVudChjb25zdCBJbnRTaXplJiB3aWRnZXRTaXplKQorICAgICAgICA6
IHdpZHRoKHdpZGdldFNpemUud2lkdGgoKSAtIGJvcmRlclNpemUgKiAyKQorICAgICAgICAsIGhl
aWdodCh3aWRnZXRTaXplLmhlaWdodCgpIC0gYm9yZGVyU2l6ZSAqIDIpCisgICAgICAgICwgbWF4
V2lkdGgod2lkdGgpCisgICAgICAgICwgbWF4SGVpZ2h0KGhlaWdodCkKKyAgICAgICAgLCBsYXlv
dXRDb3VudCgwKQorICAgIHsKKyAgICB9CisKKyAgICBpbnQgd2lkdGg7CisgICAgaW50IGhlaWdo
dDsKKyAgICBpbnQgbWF4V2lkdGg7CisgICAgaW50IG1heEhlaWdodDsKKyAgICB1bnNpZ25lZCBs
YXlvdXRDb3VudDsKKworICAgIHN0YXRpYyBjb25zdCBpbnQgYm9yZGVyU2l6ZSA9IDE7IC8vIFNo
b3VsZCBtYXRjaCB0byBrQm9yZGVyU2l6ZSBpbiBQb3B1cENvbnRhaW5lci5jcHAuCit9OworCitj
b25zdCBpbnQgc2NyZWVuTWF4WCA9IDEwMjQ7Citjb25zdCBpbnQgc2NyZWVuTWF4WSA9IDc2ODsK
K2NvbnN0IGludCB0YXJnZXRDb250cm9sV2lkdGggPSAxMzA7CisKK3N0YXRpYyBJbnRSZWN0IGNh
bGN1bGF0ZVBvc2l0aW9uKGNvbnN0IEludFJlY3QmIGluaXRpYWxSZWN0LCBQb3B1cENvbnRlbnQq
IGNvbnRlbnQpCit7CisgICAgY29uc3QgYm9vbCBpc1JUTCA9IHRydWU7CisgICAgY29uc3QgaW50
IHRhcmdldENvbnRyb2xIZWlnaHQgPSAyMDsKKyAgICBjb25zdCBGbG9hdFJlY3Qgc2NyZWVuUmVj
dCgwLCAwLCBzY3JlZW5NYXhYLCBzY3JlZW5NYXhZKTsKKyAgICBjb25zdCBGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgwLCAwLCA1MTIsIDUxMik7CisgICAgaW50IHJ0bE9mZnNldCA9IHRhcmdldENvbnRy
b2xXaWR0aCAtIGluaXRpYWxSZWN0LndpZHRoKCk7CisgICAgYm9vbCBuZWVkVG9SZXNpemVWaWV3
ID0gZmFsc2U7CisgICAgcmV0dXJuIFBvcHVwQ29udGFpbmVyOjpsYXlvdXRBbmRDYWxjdWxhdGVX
aWRnZXRSZWN0SW50ZXJuYWwoaW5pdGlhbFJlY3QsIHRhcmdldENvbnRyb2xIZWlnaHQsIHdpbmRv
d1JlY3QsIHNjcmVlblJlY3QsICFpc1JUTCwgcnRsT2Zmc2V0LCBjb250ZW50LCBuZWVkVG9SZXNp
emVWaWV3KTsKK30KKworVEVTVChQb3B1cENvbnRhaW5lclRlc3QsIFBvcHVwUG9zaXRpb24pCit7
CisgICAgLy8gU3VwcG9zZSB0aGF0IGluaXRpYWxSZWN0LmxvY2F0aW9uIGlzIHRoZSBib3R0b20t
bGVmdCBjb3JuZXIgb2YgdGhlIHRhcmdldAorICAgIC8vIGNvbnRyb2wgc3VjaCBhcyA8c2VsZWN0
Pi4KKworICAgIHsKKyAgICAgICAgLy8gSWYgaW5pdGlhbFJlY3QgaXMgaW4gdGhlIHNjcmVlbiwg
bm90aGluZyBzaG91bGQgaGFwcGVuLgorICAgICAgICBJbnRSZWN0IGluaXRpYWxSZWN0KDEwMCwg
MTAwLCAyNTYsIDI1OCk7CisgICAgICAgIE1vY2tQb3B1cENvbnRlbnQgY29udGVudChpbml0aWFs
UmVjdC5zaXplKCkpOworICAgICAgICBJbnRSZWN0IHJlc3VsdFJlY3QgPSBjYWxjdWxhdGVQb3Np
dGlvbihpbml0aWFsUmVjdCwgJmNvbnRlbnQpOworICAgICAgICBFWFBFQ1RfRVEoaW5pdGlhbFJl
Y3QsIHJlc3VsdFJlY3QpOworICAgICAgICBFWFBFQ1RfRVEoMCwgY29udGVudC5sYXlvdXRDb3Vu
dCk7CisgICAgfQorCisgICAgeworICAgICAgICAvLyBJZiB0aGUgbGVmdCBlZGdlIG9mIHRoZSBj
b250cm9sIGlzIHByb2plY3RpbmcgZnJvbSB0aGUgc2NyZWVuLCBtYWtpbmcKKyAgICAgICAgLy8g
dGhlIHdpZGdldCBhbGlnbmVkIHRvIHRoZSByaWdodCBlZGdlIG9mIHRoZSBjb250cm9sLgorICAg
ICAgICBJbnRSZWN0IGluaXRpYWxSZWN0KC0xMCwgMTAwLCAxMDAsIDI1OCk7CisgICAgICAgIE1v
Y2tQb3B1cENvbnRlbnQgY29udGVudChpbml0aWFsUmVjdC5zaXplKCkpOworICAgICAgICBJbnRS
ZWN0IHJlc3VsdFJlY3QgPSBjYWxjdWxhdGVQb3NpdGlvbihpbml0aWFsUmVjdCwgJmNvbnRlbnQp
OworICAgICAgICBFWFBFQ1RfRVEoSW50UmVjdCgyMCwgMTAwLCAxMDAsIDI1OCksIHJlc3VsdFJl
Y3QpOworICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gTWFkZSB0aGUgd2lkZ2V0IGFsaWduZWQg
dG8gdGhlIHJpZ2h0IGVkZ2UuIEJ1dCBpdCdzIHN0aWxsIHByb2plY3RpbmcKKyAgICAgICAgLy8g
ZnJvbSB0aGUgc2NyZWVuLgorICAgICAgICBJbnRSZWN0IGluaXRpYWxSZWN0KC0xMCwgMTAwLCB0
YXJnZXRDb250cm9sV2lkdGgsIDI1OCk7CisgICAgICAgIE1vY2tQb3B1cENvbnRlbnQgY29udGVu
dChpbml0aWFsUmVjdC5zaXplKCkpOworICAgICAgICBJbnRSZWN0IHJlc3VsdFJlY3QgPSBjYWxj
dWxhdGVQb3NpdGlvbihpbml0aWFsUmVjdCwgJmNvbnRlbnQpOworICAgICAgICBFWFBFQ1RfRVEo
SW50UmVjdCgwLCAxMDAsIDEyMCwgMjU4KSwgcmVzdWx0UmVjdCk7CisgICAgICAgIEVYUEVDVF9F
USgxMTgsIGNvbnRlbnQud2lkdGgpOworICAgICAgICBFWFBFQ1RfVFJVRShjb250ZW50LmxheW91
dENvdW50KTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIElmIHRoZSByaWdodCBlZGdlIG9m
IHRoZSBjb250cm9sIGlzIHByb2plY3RpbmcgZnJvbSB0aGUgc2NyZWVuLAorICAgICAgICAvLyBz
aHJpbmsgdGhlIHdpZHRoIG9mIHRoZSB3aWRnZXQuCisgICAgICAgIEludFJlY3QgaW5pdGlhbFJl
Y3Qoc2NyZWVuTWF4WCAtIDEwMCwgMTAwLCB0YXJnZXRDb250cm9sV2lkdGgsIDI1OCk7CisgICAg
ICAgIE1vY2tQb3B1cENvbnRlbnQgY29udGVudChpbml0aWFsUmVjdC5zaXplKCkpOworICAgICAg
ICBJbnRSZWN0IHJlc3VsdFJlY3QgPSBjYWxjdWxhdGVQb3NpdGlvbihpbml0aWFsUmVjdCwgJmNv
bnRlbnQpOworICAgICAgICBFWFBFQ1RfRVEoSW50UmVjdChzY3JlZW5NYXhYIC0gMTAwLCAxMDAs
IDEwMCwgMjU4KSwgcmVzdWx0UmVjdCk7CisgICAgICAgIEVYUEVDVF9FUSg5OCwgY29udGVudC53
aWR0aCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRlbnQubGF5b3V0Q291bnQpOworICAgIH0K
KworICAgIHsKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZW5vdWdoIHJvb20gYmVsb3csIG1v
dmUgdGhlIHdpZGdldCB1cHdhcmRzLgorICAgICAgICBJbnRSZWN0IGluaXRpYWxSZWN0KDEwMCwg
NzAwLCB0YXJnZXRDb250cm9sV2lkdGgsIDI1OCk7CisgICAgICAgIE1vY2tQb3B1cENvbnRlbnQg
Y29udGVudChpbml0aWFsUmVjdC5zaXplKCkpOworICAgICAgICBJbnRSZWN0IHJlc3VsdFJlY3Qg
PSBjYWxjdWxhdGVQb3NpdGlvbihpbml0aWFsUmVjdCwgJmNvbnRlbnQpOworICAgICAgICBFWFBF
Q1RfRVEoSW50UmVjdCgxMDAsIDQyMiwgdGFyZ2V0Q29udHJvbFdpZHRoLCAyNTgpLCByZXN1bHRS
ZWN0KTsKKyAgICAgICAgRVhQRUNUX0VRKDAsIGNvbnRlbnQubGF5b3V0Q291bnQpOworICAgIH0K
KworICAgIHsKKyAgICAgICAgLy8gVGhlcmUgaXMgbm8gZW5vdWdoIHJvb20gYmVsb3cgYW5kIGFi
b3ZlLCBhbmQgdGhlIGJlbG93IHNwYWNlIGlzIGxhcmdlci4KKyAgICAgICAgSW50UmVjdCBpbml0
aWFsUmVjdCgxMDAsIDMwMCwgdGFyZ2V0Q29udHJvbFdpZHRoLCA1MTQpOworICAgICAgICBNb2Nr
UG9wdXBDb250ZW50IGNvbnRlbnQoaW5pdGlhbFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgSW50UmVj
dCByZXN1bHRSZWN0ID0gY2FsY3VsYXRlUG9zaXRpb24oaW5pdGlhbFJlY3QsICZjb250ZW50KTsK
KyAgICAgICAgRVhQRUNUX0VRKEludFJlY3QoMTAwLCAzMDAsIHRhcmdldENvbnRyb2xXaWR0aCwg
NDY2KSwgcmVzdWx0UmVjdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRlbnQubGF5b3V0Q291
bnQpOworICAgICAgICBFWFBFQ1RfRVEoNDY0LCBjb250ZW50LmhlaWdodCk7CisgICAgfQorCisg
ICAgeworICAgICAgICAvLyBUaGVyZSBpcyBubyBlbm91Z2ggcm9vbSBiZWxvdyBhbmQgYWJvdmUs
IGFuZCB0aGUgYWJvdmUgc3BhY2UgaXMgbGFyZ2VyLgorICAgICAgICBJbnRSZWN0IGluaXRpYWxS
ZWN0KDEwMCwgNDAwLCB0YXJnZXRDb250cm9sV2lkdGgsIDUxNCk7CisgICAgICAgIE1vY2tQb3B1
cENvbnRlbnQgY29udGVudChpbml0aWFsUmVjdC5zaXplKCkpOworICAgICAgICBJbnRSZWN0IHJl
c3VsdFJlY3QgPSBjYWxjdWxhdGVQb3NpdGlvbihpbml0aWFsUmVjdCwgJmNvbnRlbnQpOworICAg
ICAgICBFWFBFQ1RfRVEoSW50UmVjdCgxMDAsIDEwLCB0YXJnZXRDb250cm9sV2lkdGgsIDM3MCks
IHJlc3VsdFJlY3QpOworICAgICAgICBFWFBFQ1RfVFJVRShjb250ZW50LmxheW91dENvdW50KTsK
KyAgICAgICAgRVhQRUNUX0VRKDM2OCwgY29udGVudC5oZWlnaHQpOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159043</attachid>
            <date>2012-08-17 01:22:07 -0700</date>
            <delta_ts>2012-08-20 19:34:04 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-94086-20120817172130.patch</filename>
            <type>text/plain</type>
            <size>15671</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhhZmI0ZmNlYTI2MTIy
ZmNiZjJjYWNjYjljOWZhM2Q2NGI0OWE0ZS4uZjNlYzI3YjAwM2M2Mjk5ZmYzNmMwYzJmNDIzZDE2
OGJlYjJjNmVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA4LTE3ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1ha2Ug
dGhlIHBvcHVwIHBvc2l0aW9uaW5nIGNvZGUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIFBvcHVwQ29udGVudCBpbnRlcmZh
Y2UgaW4gb3JkZXIgdG8gbWFrZSBhIG1vY2suCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cENvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cENvbnRhaW5lcjo6
bGF5b3V0QW5kQ2FsY3VsYXRlV2lkZ2V0UmVjdEludGVybmFsKToKKyAgICAgICAgIC0gTWFrZSBp
dCBhIG1lbWJlciBvZiBQb3B1cENvbnRhaW5lciB0byBhdm9pZCBuYW1lc3BhY2UgcG9sbHV0aW9u
LgorICAgICAgICAgLSBVc2UgUG9wdXBDb250ZW50IGludGVyZmFjZS4KKyAgICAgICAgIC0gTWFr
ZSB0aGUgY29kZSBjbGVhcmVyLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29u
dGFpbmVyLmg6CisgICAgICAgIChQb3B1cENvbnRhaW5lcik6IEV4cG9zZSBsYXlvdXRBbmRDYWxj
dWxhdGVXaWRnZXRSZWN0SW50ZXJuYWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cExpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94Ojpwb3B1cENv
bnRlbnRIZWlnaHQpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExp
c3RCb3guaDoKKyAgICAgICAgKFBvcHVwQ29udGVudCk6IEFkZGVkLgorICAgICAgICAoUG9wdXBM
aXN0Qm94KTogSW5oZXJpdCBQb3B1cENvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cExp
c3RCb3g6On5Qb3B1cExpc3RCb3gpOgorICAgICAgICBNYWtlIHRoaXMgdmlydHVhbCBiZWNhdXNl
IHRoaXMgY2xhc3MgaGFzIHNvbWUgdmlydHVhbCBmdW5jdGlvbnMuCisKIDIwMTItMDgtMTYgIE5p
Y28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bS9tYWNd
IFJlbW92ZSBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFRleHRGaWVsZCBvdmVycmlkZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhMGE1N2IyYTcxMWY5ZjUwZWU0YmZkYjE2YTlk
NmRhNDFkNWZkNzkxLi40YWYzMDllN2NkODZjNjQzN2ZmMDVhYzdhNzhjMzIxMGVhYTcyMTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA4LTE3ICBL
ZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1h
a2UgdGhlIHBvcHVwIHBvc2l0aW9uaW5nIGNvZGUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaTogQWRkIFBvcHVwQ29u
dGFpbmVyVGVzdC5jcHAuCisgICAgICAgICogdGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChNb2NrUG9wdXBDb250ZW50KToKKyAgICAgICAgKGNhbGN1bGF0ZVBv
c2l0aW9uKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDEyLTA4LTE2ICBBbnRvaW5lIExhYm91ciAg
PHBpbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCByZXNvdXJjZSB0
cmFuc2ZlciBmdW5jdGlvbnMgdG8gQ0NSZXNvdXJjZVByb3ZpZGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAKaW5kZXggOWRhZTlm
NTNlY2RjN2ZmNjU4NzllZmY5MzU4YWQ3YzVhZjc0NGVlZi4uM2RlYjk1YTkyOGJlYzkxYzhhYjY4
MjZhZGZmNTMzZDhiN2FkZDllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwQ29udGFpbmVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIFBvcHVwQ29u
dGFpbmVyOjp+UG9wdXBDb250YWluZXIoKQogICAgICAgICByZW1vdmVDaGlsZChtX2xpc3RCb3gu
Z2V0KCkpOwogfQogCi1zdGF0aWMgSW50UmVjdCBsYXlvdXRBbmRDYWxjdWxhdGVXaWRnZXRSZWN0
SW50ZXJuYWwoSW50UmVjdCB3aWRnZXRSZWN0SW5TY3JlZW4sIGludCB0YXJnZXRDb250cm9sSGVp
Z2h0LCBjb25zdCBGbG9hdFJlY3QmIHdpbmRvd1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVu
LCBib29sIGlzUlRMLCBjb25zdCBpbnQgcnRsT2Zmc2V0LCBQb3B1cExpc3RCb3gqIGxpc3RCb3gs
IGJvb2wmIG5lZWRUb1Jlc2l6ZVZpZXcpCitJbnRSZWN0IFBvcHVwQ29udGFpbmVyOjpsYXlvdXRB
bmRDYWxjdWxhdGVXaWRnZXRSZWN0SW50ZXJuYWwoSW50UmVjdCB3aWRnZXRSZWN0SW5TY3JlZW4s
IGludCB0YXJnZXRDb250cm9sSGVpZ2h0LCBjb25zdCBGbG9hdFJlY3QmIHdpbmRvd1JlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc2NyZWVuLCBib29sIGlzUlRMLCBjb25zdCBpbnQgcnRsT2Zmc2V0LCBQ
b3B1cENvbnRlbnQqIGxpc3RCb3gsIGJvb2wmIG5lZWRUb1Jlc2l6ZVZpZXcpCiB7CiAgICAgQVNT
RVJUKGxpc3RCb3gpOwogICAgIGlmICh3aW5kb3dSZWN0LngoKSA+PSBzY3JlZW4ueCgpICYmIHdp
bmRvd1JlY3QubWF4WCgpIDw9IHNjcmVlbi5tYXhYKCkgJiYgKHdpZGdldFJlY3RJblNjcmVlbi54
KCkgPCBzY3JlZW4ueCgpIHx8IHdpZGdldFJlY3RJblNjcmVlbi5tYXhYKCkgPiBzY3JlZW4ubWF4
WCgpKSkgewpAQCAtMTM1LDkgKzEzNSw4IEBAIHN0YXRpYyBJbnRSZWN0IGxheW91dEFuZENhbGN1
bGF0ZVdpZGdldFJlY3RJbnRlcm5hbChJbnRSZWN0IHdpZGdldFJlY3RJblNjcmVlbiwKICAgICAg
ICAgICAgIHdpZGdldFJlY3RJblNjcmVlbiA9IGludmVyc2VXaWRnZXRSZWN0SW5TY3JlZW47CiAK
ICAgICAgICAgaWYgKHdpZGdldFJlY3RJblNjcmVlbi54KCkgPCBzY3JlZW4ueCgpKSB7Ci0gICAg
ICAgICAgICB1bnNpZ25lZCB3aWRnZXRSaWdodCA9IHdpZGdldFJlY3RJblNjcmVlbi5tYXhYKCk7
CiAgICAgICAgICAgICB3aWRnZXRSZWN0SW5TY3JlZW4uc2V0V2lkdGgod2lkZ2V0UmVjdEluU2Ny
ZWVuLm1heFgoKSAtIHNjcmVlbi54KCkpOwotICAgICAgICAgICAgd2lkZ2V0UmVjdEluU2NyZWVu
LnNldFgod2lkZ2V0UmlnaHQgLSB3aWRnZXRSZWN0SW5TY3JlZW4ud2lkdGgoKSk7CisgICAgICAg
ICAgICB3aWRnZXRSZWN0SW5TY3JlZW4uc2V0WChzY3JlZW4ueCgpKTsKICAgICAgICAgICAgIGxp
c3RCb3gtPnNldE1heFdpZHRoQW5kTGF5b3V0KHN0ZDo6bWF4KHdpZGdldFJlY3RJblNjcmVlbi53
aWR0aCgpIC0ga0JvcmRlclNpemUgKiAyLCAwKSk7CiAgICAgICAgIH0gZWxzZSBpZiAod2lkZ2V0
UmVjdEluU2NyZWVuLm1heFgoKSA+IHNjcmVlbi5tYXhYKCkpIHsKICAgICAgICAgICAgIHdpZGdl
dFJlY3RJblNjcmVlbi5zZXRXaWR0aChzY3JlZW4ubWF4WCgpIC0gd2lkZ2V0UmVjdEluU2NyZWVu
LngoKSk7CkBAIC0xNjEsNyArMTYwLDcgQEAgc3RhdGljIEludFJlY3QgbGF5b3V0QW5kQ2FsY3Vs
YXRlV2lkZ2V0UmVjdEludGVybmFsKEludFJlY3Qgd2lkZ2V0UmVjdEluU2NyZWVuLAogICAgICAg
ICAgICAgICAgIGxpc3RCb3gtPnNldE1heEhlaWdodChzcGFjZUJlbG93KTsKICAgICAgICAgICAg
IGxpc3RCb3gtPmxheW91dCgpOwogICAgICAgICAgICAgbmVlZFRvUmVzaXplVmlldyA9IHRydWU7
Ci0gICAgICAgICAgICB3aWRnZXRSZWN0SW5TY3JlZW4uc2V0SGVpZ2h0KGxpc3RCb3gtPmhlaWdo
dCgpICsga0JvcmRlclNpemUgKiAyKTsKKyAgICAgICAgICAgIHdpZGdldFJlY3RJblNjcmVlbi5z
ZXRIZWlnaHQobGlzdEJveC0+cG9wdXBDb250ZW50SGVpZ2h0KCkgKyBrQm9yZGVyU2l6ZSAqIDIp
OwogICAgICAgICAgICAgLy8gTW92ZSBXZWJXaWRnZXQgdXB3YXJkcyBpZiBuZWNlc3NhcnkuCiAg
ICAgICAgICAgICBpZiAoc3BhY2VBYm92ZSA+IHNwYWNlQmVsb3cpCiAgICAgICAgICAgICAgICAg
d2lkZ2V0UmVjdEluU2NyZWVuLm1vdmUoMCwgLSh3aWRnZXRSZWN0SW5TY3JlZW4uaGVpZ2h0KCkg
KyB0YXJnZXRDb250cm9sSGVpZ2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBDb250YWluZXIuaAppbmRleCAyMTg4NWMzOWEyZGMxYmZjYTM1MjhmNWZk
Mzg0NmNlYzZiODdjNmYyLi43OGQ2ZWI4ODA1NDExYmJlYmYyOGRmMjNkODVmZTFmZWZmYzVkZmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRh
aW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29udGFp
bmVyLmgKQEAgLTExOCw2ICsxMTgsMTAgQEAgcHVibGljOgogICAgIC8vIFdoaWxlIGhvdmVyaW5n
IHBvcHVwIG1lbnUgd2luZG93LCB3ZSB3YW50IHRvIHNob3cgdG9vbCB0aXAgbWVzc2FnZS4KICAg
ICBTdHJpbmcgZ2V0U2VsZWN0ZWRJdGVtVG9vbFRpcCgpOwogCisgICAgLy8gVGhpcyBpcyBwdWJs
aWMgZm9yIHRlc3RpbmcuCisgICAgc3RhdGljIEludFJlY3QgbGF5b3V0QW5kQ2FsY3VsYXRlV2lk
Z2V0UmVjdEludGVybmFsKEludFJlY3Qgd2lkZ2V0UmVjdEluU2NyZWVuLCBpbnQgdGFyZ2V0Q29u
dHJvbEhlaWdodCwgY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNjcmVlbiwgYm9vbCBpc1JUTCwgY29uc3QgaW50IHJ0bE9mZnNldCwgUG9wdXBDb250ZW50Kiwg
Ym9vbCYgbmVlZFRvUmVzaXplVmlldyk7CisKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
V1RGOjpSZWZDb3VudGVkPFBvcHVwQ29udGFpbmVyPjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAKaW5kZXggODk1YzJhZWVmM2RhMzQ0
ZWY3MWRmNDU5NDc0MmFhOTg1NzFhNDdlNC4uYzc1YTJmZjNkODg3OGU3MjI3YTY3YTgyZGJlMzk0
NzVkNDE2MGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cExpc3RCb3guY3BwCkBAIC05MDgsNCArOTA4LDkgQEAgYm9vbCBQb3B1cExpc3RCb3g6Omlz
UG9pbnRJbkJvdW5kcyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgcmV0dXJuIG51bUl0ZW1z
KCkgJiYgSW50UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSkuY29udGFpbnMocG9pbnQpOwog
fQogCitpbnQgUG9wdXBMaXN0Qm94Ojpwb3B1cENvbnRlbnRIZWlnaHQoKSBjb25zdAoreworICAg
IHJldHVybiBoZWlnaHQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAppbmRleCBkYzhlM2Jm
OGQwMTExNzg4MjIwN2RkYTUxMDcwYjQwM2IyN2I2OTAwLi41MjIzNzZlYzM4ZDQ4ZGZlNGU4YjJj
ZTNlZDU3MGNmNzdkMmI3OGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cExpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guaApAQCAtODUsNiArODUsMTUgQEAgc3RydWN0IFBvcHVwQ29udGFp
bmVyU2V0dGluZ3MgewogICAgIGJvb2wgZGV2aWNlU3VwcG9ydHNUb3VjaDsKIH07CiAKK2NsYXNz
IFBvcHVwQ29udGVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0TWF4SGVpZ2h0KGludCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRNYXhXaWR0aEFuZExheW91dChpbnQpID0gMDsKKyAgICB2aXJ0dWFsIGludCBwb3B1cENv
bnRlbnRIZWlnaHQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB+UG9wdXBDb250ZW50KCkgeyB9
OworfTsKKwogLy8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAo
ZS5nLiByZXByZXNlbnRlZCBieSA8b3B0aW9uPgogLy8gb3IgPG9wdGdyb3VwPiBpbiBhIDxzZWxl
Y3Q+IHdpZGdldCkgYW5kIGlzIHVzZWQgYnkgUG9wdXBMaXN0Qm94Lgogc3RydWN0IFBvcHVwSXRl
bSB7CkBAIC0xMTAsNyArMTE5LDcgQEAgc3RydWN0IFBvcHVwSXRlbSB7CiAKIC8vIFRoaXMgY2xh
c3MgdXNlcyBXZWJDb3JlIGNvZGUgdG8gcGFpbnQgYW5kIGhhbmRsZSBldmVudHMgZm9yIGEgZHJv
cC1kb3duIGxpc3QKIC8vIGJveCAoImNvbWJvYm94IiBvbiBXaW5kb3dzKS4KLWNsYXNzIFBvcHVw
TGlzdEJveCA6IHB1YmxpYyBGcmFtZWxlc3NTY3JvbGxWaWV3IHsKK2NsYXNzIFBvcHVwTGlzdEJv
eCA6IHB1YmxpYyBGcmFtZWxlc3NTY3JvbGxWaWV3LCBwdWJsaWMgUG9wdXBDb250ZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQb3B1cExpc3RCb3g+IGNyZWF0ZShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCwgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyYgc2V0dGluZ3Mp
CiAgICAgewpAQCAtMTY0LDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJhc2VXaWR0
aChpbnQgd2lkdGgpIHsgbV9iYXNlV2lkdGggPSBzdGQ6Om1pbihtX21heFdpbmRvd1dpZHRoLCB3
aWR0aCk7IH0KIAogICAgIC8vIENvbXB1dGVzIHRoZSBzaXplIG9mIHdpZGdldCBhbmQgY2hpbGRy
ZW4uCi0gICAgdm9pZCBsYXlvdXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJ
REU7CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHBvcHVwIHdhbnRzIHRvIHByb2Nlc3Mg
ZXZlbnRzIGZvciB0aGUgcGFzc2VkIGtleS4KICAgICBib29sIGlzSW50ZXJlc3RlZEluRXZlbnRG
b3JLZXkoaW50IGtleUNvZGUpOwpAQCAtMTcyLDIzICsxODEsMjUgQEAgcHVibGljOgogICAgIC8v
IEdldHMgdGhlIGhlaWdodCBvZiBhIHJvdy4KICAgICBpbnQgZ2V0Um93SGVpZ2h0KGludCBpbmRl
eCk7CiAKLSAgICB2b2lkIHNldE1heEhlaWdodChpbnQgbWF4SGVpZ2h0KSB7IG1fbWF4SGVpZ2h0
ID0gbWF4SGVpZ2h0OyB9CisgICAgdmlydHVhbCB2b2lkIHNldE1heEhlaWdodChpbnQgbWF4SGVp
Z2h0KSBPVkVSUklERSB7IG1fbWF4SGVpZ2h0ID0gbWF4SGVpZ2h0OyB9CiAKICAgICB2b2lkIHNl
dE1heFdpZHRoKGludCBtYXhXaWR0aCkgeyBtX21heFdpbmRvd1dpZHRoID0gbWF4V2lkdGg7IH0K
IAotICAgIHZvaWQgc2V0TWF4V2lkdGhBbmRMYXlvdXQoaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0TWF4V2lkdGhBbmRMYXlvdXQoaW50KSBPVkVSUklERTsKIAogICAgIHZvaWQgZGlzY29ubmVj
dENsaWVudCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KIAogICAgIGNvbnN0IFZlY3RvcjxQb3B1
cEl0ZW0qPiYgaXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1zOyB9CiAKKyAgICB2aXJ0dWFs
IGludCBwb3B1cENvbnRlbnRIZWlnaHQoKSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgUG9wdXBDb250YWluZXI7CiAgICAgZnJpZW5kIGNsYXNzIFJlZkNvdW50
ZWQ8UG9wdXBMaXN0Qm94PjsKIAogICAgIFBvcHVwTGlzdEJveChQb3B1cE1lbnVDbGllbnQqLCBj
b25zdCBQb3B1cENvbnRhaW5lclNldHRpbmdzJik7CiAKLSAgICB+UG9wdXBMaXN0Qm94KCkKKyAg
ICB2aXJ0dWFsIH5Qb3B1cExpc3RCb3goKQogICAgIHsKICAgICAgICAgY2xlYXIoKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCAxMmMxNDlhOTkxOTU3YzYzZTAwODAx
NzZhY2UxNmJlMmExODA2OWUyLi41ZWFiNDg3YTVjMTcxZDBmZmY4OTAyYTMxYTE2NTZiMjdhOGQ0
Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTE0MCw2ICsxNDAsNyBAQAog
ICAgICAgICAgICAgJ3Rlc3RzL1BPREFyZW5hVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3Rz
L1BPREludGVydmFsVHJlZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9QT0RSZWRCbGFj
a1RyZWVUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NQcmlvcml0aXplZFRleHR1cmVUZXN0LmNwcCcsCiAg
ICAgICAgICAgICAndGVzdHMvUmVnaW9uVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1Jl
bmRlclRhYmxlQ2VsbFRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvUG9wdXBDb250YWluZXJUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzIxYjRjYmJiYmIwZjg3
OTNjYTFlMDA4MmNhOWRhZDVkYWEzYTcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9Qb3B1cENvbnRhaW5lclRlc3QuY3BwCkBAIC0wLDAgKzEsMTU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICog
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvcHVw
Q29udGFpbmVyLmgiCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworY2xhc3MgTW9ja1BvcHVwQ29udGVudCA6IHB1YmxpYyBQb3B1cENvbnRl
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRNYXhIZWlnaHQoaW50IG1heCkgT1ZF
UlJJREUgeyBtYXhIZWlnaHQgPSBtYXg7IH0KKyAgICB2aXJ0dWFsIGludCBwb3B1cENvbnRlbnRI
ZWlnaHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBoZWlnaHQ7IH0KKyAgICB2aXJ0dWFsIH5N
b2NrUG9wdXBDb250ZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJ
REUKKyAgICB7CisgICAgICAgIGxheW91dENvdW50Kys7CisgICAgICAgIHdpZHRoID0gc3RkOjpt
aW4obWF4V2lkdGgsIHdpZHRoKTsKKyAgICAgICAgaGVpZ2h0ID0gc3RkOjptaW4obWF4SGVpZ2h0
LCBoZWlnaHQpOworICAgICAgICBoZWlnaHQgLT0gaGVpZ2h0ICUgMTY7CisgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIHNldE1heFdpZHRoQW5kTGF5b3V0KGludCBtYXgpIE9WRVJSSURFCisgICAg
eworICAgICAgICBtYXhXaWR0aCA9IG1heDsKKyAgICAgICAgbGF5b3V0KCk7CisgICAgfQorCisg
ICAgTW9ja1BvcHVwQ29udGVudChjb25zdCBJbnRTaXplJiB3aWRnZXRTaXplKQorICAgICAgICA6
IHdpZHRoKHdpZGdldFNpemUud2lkdGgoKSAtIGJvcmRlclNpemUgKiAyKQorICAgICAgICAsIGhl
aWdodCh3aWRnZXRTaXplLmhlaWdodCgpIC0gYm9yZGVyU2l6ZSAqIDIpCisgICAgICAgICwgbWF4
V2lkdGgod2lkdGgpCisgICAgICAgICwgbWF4SGVpZ2h0KGhlaWdodCkKKyAgICAgICAgLCBsYXlv
dXRDb3VudCgwKQorICAgIHsKKyAgICB9CisKKyAgICBpbnQgd2lkdGg7CisgICAgaW50IGhlaWdo
dDsKKyAgICBpbnQgbWF4V2lkdGg7CisgICAgaW50IG1heEhlaWdodDsKKyAgICB1bnNpZ25lZCBs
YXlvdXRDb3VudDsKKworICAgIHN0YXRpYyBjb25zdCBpbnQgYm9yZGVyU2l6ZSA9IDE7IC8vIFNo
b3VsZCBtYXRjaCB0byBrQm9yZGVyU2l6ZSBpbiBQb3B1cENvbnRhaW5lci5jcHAuCit9OworCitj
b25zdCBpbnQgc2NyZWVuTWF4WCA9IDEwMjQ7Citjb25zdCBpbnQgc2NyZWVuTWF4WSA9IDc2ODsK
K2NvbnN0IGludCB0YXJnZXRDb250cm9sV2lkdGggPSAxMzA7CisKK3N0YXRpYyBJbnRSZWN0IGNh
bGN1bGF0ZVBvc2l0aW9uKGNvbnN0IEludFJlY3QmIGluaXRpYWxSZWN0LCBQb3B1cENvbnRlbnQq
IGNvbnRlbnQpCit7CisgICAgY29uc3QgYm9vbCBpc1JUTCA9IHRydWU7CisgICAgY29uc3QgaW50
IHRhcmdldENvbnRyb2xIZWlnaHQgPSAyMDsKKyAgICBjb25zdCBGbG9hdFJlY3Qgc2NyZWVuUmVj
dCgwLCAwLCBzY3JlZW5NYXhYLCBzY3JlZW5NYXhZKTsKKyAgICBjb25zdCBGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgwLCAwLCA1MTIsIDUxMik7CisgICAgaW50IHJ0bE9mZnNldCA9IHRhcmdldENvbnRy
b2xXaWR0aCAtIGluaXRpYWxSZWN0LndpZHRoKCk7CisgICAgYm9vbCBuZWVkVG9SZXNpemVWaWV3
ID0gZmFsc2U7CisgICAgcmV0dXJuIFBvcHVwQ29udGFpbmVyOjpsYXlvdXRBbmRDYWxjdWxhdGVX
aWRnZXRSZWN0SW50ZXJuYWwoaW5pdGlhbFJlY3QsIHRhcmdldENvbnRyb2xIZWlnaHQsIHdpbmRv
d1JlY3QsIHNjcmVlblJlY3QsICFpc1JUTCwgcnRsT2Zmc2V0LCBjb250ZW50LCBuZWVkVG9SZXNp
emVWaWV3KTsKK30KKworVEVTVChQb3B1cENvbnRhaW5lclRlc3QsIFBvcHVwUG9zaXRpb24pCit7
CisgICAgLy8gU3VwcG9zZSB0aGF0IGluaXRpYWxSZWN0LmxvY2F0aW9uIGlzIHRoZSBib3R0b20t
bGVmdCBjb3JuZXIgb2YgdGhlIHRhcmdldAorICAgIC8vIGNvbnRyb2wgc3VjaCBhcyA8c2VsZWN0
Pi4KKworICAgIHsKKyAgICAgICAgLy8gSWYgaW5pdGlhbFJlY3QgaXMgaW4gdGhlIHNjcmVlbiwg
bm90aGluZyBzaG91bGQgaGFwcGVuLgorICAgICAgICBJbnRSZWN0IGluaXRpYWxSZWN0KDEwMCwg
MTAwLCAyNTYsIDI1OCk7CisgICAgICAgIE1vY2tQb3B1cENvbnRlbnQgY29udGVudChpbml0aWFs
UmVjdC5zaXplKCkpOworICAgICAgICBJbnRSZWN0IHJlc3VsdFJlY3QgPSBjYWxjdWxhdGVQb3Np
dGlvbihpbml0aWFsUmVjdCwgJmNvbnRlbnQpOworICAgICAgICBFWFBFQ1RfRVEoaW5pdGlhbFJl
Y3QsIHJlc3VsdFJlY3QpOworICAgICAgICBFWFBFQ1RfRVEoMHUsIGNvbnRlbnQubGF5b3V0Q291
bnQpOworICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gSWYgdGhlIGxlZnQgZWRnZSBvZiB0aGUg
Y29udHJvbCBpcyBwcm9qZWN0aW5nIGZyb20gdGhlIHNjcmVlbiwgbWFraW5nCisgICAgICAgIC8v
IHRoZSB3aWRnZXQgYWxpZ25lZCB0byB0aGUgcmlnaHQgZWRnZSBvZiB0aGUgY29udHJvbC4KKyAg
ICAgICAgSW50UmVjdCBpbml0aWFsUmVjdCgtMTAsIDEwMCwgMTAwLCAyNTgpOworICAgICAgICBN
b2NrUG9wdXBDb250ZW50IGNvbnRlbnQoaW5pdGlhbFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgSW50
UmVjdCByZXN1bHRSZWN0ID0gY2FsY3VsYXRlUG9zaXRpb24oaW5pdGlhbFJlY3QsICZjb250ZW50
KTsKKyAgICAgICAgRVhQRUNUX0VRKEludFJlY3QoMjAsIDEwMCwgMTAwLCAyNTgpLCByZXN1bHRS
ZWN0KTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIE1hZGUgdGhlIHdpZGdldCBhbGlnbmVk
IHRvIHRoZSByaWdodCBlZGdlLiBCdXQgaXQncyBzdGlsbCBwcm9qZWN0aW5nCisgICAgICAgIC8v
IGZyb20gdGhlIHNjcmVlbi4KKyAgICAgICAgSW50UmVjdCBpbml0aWFsUmVjdCgtMTAsIDEwMCwg
dGFyZ2V0Q29udHJvbFdpZHRoLCAyNTgpOworICAgICAgICBNb2NrUG9wdXBDb250ZW50IGNvbnRl
bnQoaW5pdGlhbFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCByZXN1bHRSZWN0ID0gY2Fs
Y3VsYXRlUG9zaXRpb24oaW5pdGlhbFJlY3QsICZjb250ZW50KTsKKyAgICAgICAgRVhQRUNUX0VR
KEludFJlY3QoMCwgMTAwLCAxMjAsIDI1OCksIHJlc3VsdFJlY3QpOworICAgICAgICBFWFBFQ1Rf
RVEoMTE4LCBjb250ZW50LndpZHRoKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGVudC5sYXlv
dXRDb3VudCk7CisgICAgfQorCisgICAgeworICAgICAgICAvLyBJZiB0aGUgcmlnaHQgZWRnZSBv
ZiB0aGUgY29udHJvbCBpcyBwcm9qZWN0aW5nIGZyb20gdGhlIHNjcmVlbiwKKyAgICAgICAgLy8g
c2hyaW5rIHRoZSB3aWR0aCBvZiB0aGUgd2lkZ2V0LgorICAgICAgICBJbnRSZWN0IGluaXRpYWxS
ZWN0KHNjcmVlbk1heFggLSAxMDAsIDEwMCwgdGFyZ2V0Q29udHJvbFdpZHRoLCAyNTgpOworICAg
ICAgICBNb2NrUG9wdXBDb250ZW50IGNvbnRlbnQoaW5pdGlhbFJlY3Quc2l6ZSgpKTsKKyAgICAg
ICAgSW50UmVjdCByZXN1bHRSZWN0ID0gY2FsY3VsYXRlUG9zaXRpb24oaW5pdGlhbFJlY3QsICZj
b250ZW50KTsKKyAgICAgICAgRVhQRUNUX0VRKEludFJlY3Qoc2NyZWVuTWF4WCAtIDEwMCwgMTAw
LCAxMDAsIDI1OCksIHJlc3VsdFJlY3QpOworICAgICAgICBFWFBFQ1RfRVEoOTgsIGNvbnRlbnQu
d2lkdGgpOworICAgICAgICBFWFBFQ1RfVFJVRShjb250ZW50LmxheW91dENvdW50KTsKKyAgICB9
CisKKyAgICB7CisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGVub3VnaCByb29tIGJlbG93LCBt
b3ZlIHRoZSB3aWRnZXQgdXB3YXJkcy4KKyAgICAgICAgSW50UmVjdCBpbml0aWFsUmVjdCgxMDAs
IDcwMCwgdGFyZ2V0Q29udHJvbFdpZHRoLCAyNTgpOworICAgICAgICBNb2NrUG9wdXBDb250ZW50
IGNvbnRlbnQoaW5pdGlhbFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgSW50UmVjdCByZXN1bHRSZWN0
ID0gY2FsY3VsYXRlUG9zaXRpb24oaW5pdGlhbFJlY3QsICZjb250ZW50KTsKKyAgICAgICAgRVhQ
RUNUX0VRKEludFJlY3QoMTAwLCA0MjIsIHRhcmdldENvbnRyb2xXaWR0aCwgMjU4KSwgcmVzdWx0
UmVjdCk7CisgICAgICAgIEVYUEVDVF9FUSgwdSwgY29udGVudC5sYXlvdXRDb3VudCk7CisgICAg
fQorCisgICAgeworICAgICAgICAvLyBUaGVyZSBpcyBubyBlbm91Z2ggcm9vbSBiZWxvdyBhbmQg
YWJvdmUsIGFuZCB0aGUgYmVsb3cgc3BhY2UgaXMgbGFyZ2VyLgorICAgICAgICBJbnRSZWN0IGlu
aXRpYWxSZWN0KDEwMCwgMzAwLCB0YXJnZXRDb250cm9sV2lkdGgsIDUxNCk7CisgICAgICAgIE1v
Y2tQb3B1cENvbnRlbnQgY29udGVudChpbml0aWFsUmVjdC5zaXplKCkpOworICAgICAgICBJbnRS
ZWN0IHJlc3VsdFJlY3QgPSBjYWxjdWxhdGVQb3NpdGlvbihpbml0aWFsUmVjdCwgJmNvbnRlbnQp
OworICAgICAgICBFWFBFQ1RfRVEoSW50UmVjdCgxMDAsIDMwMCwgdGFyZ2V0Q29udHJvbFdpZHRo
LCA0NjYpLCByZXN1bHRSZWN0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY29udGVudC5sYXlvdXRD
b3VudCk7CisgICAgICAgIEVYUEVDVF9FUSg0NjQsIGNvbnRlbnQuaGVpZ2h0KTsKKyAgICB9CisK
KyAgICB7CisgICAgICAgIC8vIFRoZXJlIGlzIG5vIGVub3VnaCByb29tIGJlbG93IGFuZCBhYm92
ZSwgYW5kIHRoZSBhYm92ZSBzcGFjZSBpcyBsYXJnZXIuCisgICAgICAgIEludFJlY3QgaW5pdGlh
bFJlY3QoMTAwLCA0MDAsIHRhcmdldENvbnRyb2xXaWR0aCwgNTE0KTsKKyAgICAgICAgTW9ja1Bv
cHVwQ29udGVudCBjb250ZW50KGluaXRpYWxSZWN0LnNpemUoKSk7CisgICAgICAgIEludFJlY3Qg
cmVzdWx0UmVjdCA9IGNhbGN1bGF0ZVBvc2l0aW9uKGluaXRpYWxSZWN0LCAmY29udGVudCk7Cisg
ICAgICAgIEVYUEVDVF9FUShJbnRSZWN0KDEwMCwgMTAsIHRhcmdldENvbnRyb2xXaWR0aCwgMzcw
KSwgcmVzdWx0UmVjdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRlbnQubGF5b3V0Q291bnQp
OworICAgICAgICBFWFBFQ1RfRVEoMzY4LCBjb250ZW50LmhlaWdodCk7CisgICAgfQorfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>