<?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>81363</bug_id>
          
          <creation_ts>2012-03-16 10:00:50 -0700</creation_ts>
          <short_desc>[chromium] Transform animation state should be inherited from parents</short_desc>
          <delta_ts>2012-03-18 14:59:21 -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>
          
          <blocked>81354</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>580614</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 10:00:50 -0700</bug_when>
    <thetext>[chromium] Transform animation state should be inherited from parents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580617</commentid>
    <comment_count>1</comment_count>
      <attachid>132306</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 10:06:25 -0700</bug_when>
    <thetext>Created attachment 132306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580621</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 10:08:42 -0700</bug_when>
    <thetext>I&apos;m not sure if this is something we&apos;ll need to worry about being problematic, but which layers have RenderSurfaces may be different between the two threads in the face of animating opacity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580926</commentid>
    <comment_count>3</comment_count>
      <attachid>132371</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 13:58:24 -0700</bug_when>
    <thetext>Created attachment 132371
Patch

- Renamed the transformIsAnimating() functions based on feedback from Shawn. I think they&apos;re more clear and consistent now.
- Moved the bugfix for creation of render surfaces out, as it&apos;s a separate issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581044</commentid>
    <comment_count>4</comment_count>
      <attachid>132371</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-16 15:33:01 -0700</bug_when>
    <thetext>Comment on attachment 132371
Patch

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

Looks good in general.  R=me, with nits.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h:95
&gt; +    bool targetSurfaceTransformsAreAnimating() const { return m_targetSurfaceTransformsAreAnimating; }
&gt; +    void setTargetSurfaceTransformsAreAnimating(bool animating) { m_targetSurfaceTransformsAreAnimating = animating; }
&gt; +    bool screenSpaceTransformsAreAnimating() const { return m_screenSpaceTransformsAreAnimating; }
&gt; +    void setScreenSpaceTransformsAreAnimating(bool animating) { m_screenSpaceTransformsAreAnimating = animating; }

Why is screen space transform plural here? Isn&apos;t there just one?

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:724
&gt; +    EXPECT_TRUE(renderSurface2-&gt;renderSurface()-&gt;targetSurfaceTransformsAreAnimating());

Can you add a test where renderSurface()-&gt;targetSurfaceTransformsAreAnimating() is false?

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:729
&gt; +    // Verify drawTransformsAnimatingInScreen values
&gt; +    //

Can you add a test where screenSpaceTransformIsAnimating ends up being false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581104</commentid>
    <comment_count>5</comment_count>
      <attachid>132371</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 16:52:18 -0700</bug_when>
    <thetext>Comment on attachment 132371
Patch

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

ty :)

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h:95
&gt;&gt; +    void setScreenSpaceTransformsAreAnimating(bool animating) { m_screenSpaceTransformsAreAnimating = animating; }
&gt; 
&gt; Why is screen space transform plural here? Isn&apos;t there just one?

there is going to be one for the surface and one for the replica.

&gt;&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:724
&gt;&gt; +    EXPECT_TRUE(renderSurface2-&gt;renderSurface()-&gt;targetSurfaceTransformsAreAnimating());
&gt; 
&gt; Can you add a test where renderSurface()-&gt;targetSurfaceTransformsAreAnimating() is false?

k!

&gt;&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:729
&gt;&gt; +    //
&gt; 
&gt; Can you add a test where screenSpaceTransformIsAnimating ends up being false?

k!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581145</commentid>
    <comment_count>6</comment_count>
      <attachid>132426</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 17:38:37 -0700</bug_when>
    <thetext>Created attachment 132426
Patch

Thanks for the input, I made that test a lot better. It tests both cases with the 2 render surfaces, and tests propogation of screen space transforms by setting transforms on 2 of the 3 children of root.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581494</commentid>
    <comment_count>7</comment_count>
      <attachid>132426</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-18 14:59:16 -0700</bug_when>
    <thetext>Comment on attachment 132426
Patch

Clearing flags on attachment: 132426

Committed r111137: &lt;http://trac.webkit.org/changeset/111137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581495</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-18 14:59:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132306</attachid>
            <date>2012-03-16 10:06:25 -0700</date>
            <delta_ts>2012-03-16 13:58:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81363-20120316130623.patch</filename>
            <type>text/plain</type>
            <size>28722</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4MDRkN2E3Mzc5ZjFi
OTc3OTBkZjE3MWMzZGRkZDdiMDQyODJhMi4uY2U3ZmEwZjE0MWFiZWMwMzdlMDBmMDEwZjI4MWIz
OTUwNDAzYmI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAzLTE2ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVHJh
bnNmb3JtIGFuaW1hdGlvbiBzdGF0ZSBzaG91bGQgYmUgaW5oZXJpdGVkIGZyb20gcGFyZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzNjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgZHJh
d1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCgpIGFuZCBkcmF3VHJhbnNmb3Jtc0FuaW1hdGlu
Z0luU2NyZWVuKCkKKyAgICAgICAgdG8gdGhlIGxheWVyL3N1cmZhY2UgY2xhc3NlcywgdGhhdCBp
bmhlcml0IGZyb20gdGhlaXIgcGFyZW50cy4gVGhlc2UgY2FuIGJlCisgICAgICAgIHVzZWQgaW4g
bWFpbi10aHJlYWQgY3VsbGluZyB3aGVuIGRldGVybWluaW5nIGlmIHRoZSBsYXllcidzIHBvc2l0
aW9uIGlzIHN0YXRpYworICAgICAgICBpbiB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBzcGFjZSBvciBi
ZWluZyBhbmltYXRlZC4KKworICAgICAgICBBbHNvIGZpeGVzIGEgYnVnIHdoZXJlIGxheWVycyB3
aXRoIGFuaW1hdGluZyBvcGFjaXR5IGRpZCBub3QgZ2V0IGEgcmVuZGVyCisgICAgICAgIHN1cmZh
Y2Ugb24gdGhlIG1haW4gdGhyZWFkLCBidXQgdGhlaXIgb3BhY2l0eSBpcyBub3QgMSBkdXJpbmcg
YW5pbWF0aW9uLgorICAgICAgICBNYWRlIHRoZSB1bml0IHRlc3QgdmVyaWZ5IHRoYXQgZHJhd09w
YWNpdHlJc0FuaW1hdGluZyBwcm9wb2dhdGVzIGNvcnJlY3RseQorICAgICAgICB0byBjaGlsZHJl
bi4KKworICAgICAgICBVbml0IHRlc3Q6IENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QudmVyaWZ5
QW5pbWF0aW9uc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkKKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoTGF5ZXJDaHJvbWl1bSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpkcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0lu
VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldERyYXdUcmFuc2Zv
cm1zQW5pbWF0aW5nSW5UYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6
ZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpzZXREcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3VyZmFjZUNocm9taXVtOjpSZW5kZXJTdXJmYWNlQ2hy
b21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZh
Y2VDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3VyZmFjZUNocm9taXVtOjpk
cmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clN1cmZhY2VDaHJvbWl1bTo6c2V0RHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdXJmYWNlQ2hyb21pdW06OmRyYXdUcmFuc2Zvcm1zQW5p
bWF0aW5nSW5TY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3VyZmFjZUNocm9taXVt
OjpzZXREcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKToKKyAgICAgICAgKFJlbmRlclN1
cmZhY2VDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OkNDTGF5ZXJJ
bXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5oOgorICAgICAgICAoQ0NMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllcklt
cGw6OmRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q0NMYXllckltcGw6OnNldERyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OmRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldERyYXdUcmFuc2Zvcm1zQW5pbWF0
aW5nSW5TY3JlZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdWJ0cmVlU2hvdWxk
QmVTa2lwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OmxheWVyT3BhY2l0eUlzT3BhcXVlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6c3VidHJlZVNob3VsZFJlbmRlclRv
U2VwYXJhdGVTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zv
cm1zQW5kVmlzaWJpbGl0eUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5k
ZXJTdXJmYWNlOjpDQ1JlbmRlclN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5k
ZXJTdXJmYWNlOjpkcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNDUmVuZGVyU3VyZmFjZTo6c2V0RHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclN1cmZhY2U6OmRyYXdUcmFuc2Zvcm1zQW5p
bWF0aW5nSW5TY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJTdXJmYWNlOjpzZXRE
cmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKToKKyAgICAgICAgKENDUmVuZGVyU3VyZmFj
ZSk6CisKIDIwMTItMDMtMTYgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFRoZSBJREwgcGFyc2VyIHNob3VsZCBzdXBwb3J0IHNlcXVlbmNlPFQ+IHR5cGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2Q2OGIxZTIzNmI5OTViZGNkYjhhMmUwYzM2
MGI0ZDhhNTM4ZWRmNS4uZjRjMjRmYTI5NjdhNjZmY2MzMDZiNjFjMWZmZDJkOGY0M2ViZmFlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMy0xNiAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFRyYW5zZm9ybSBhbmltYXRpb24gc3RhdGUgc2hvdWxkIGJlIGluaGVyaXRlZCBmcm9tIHBhcmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzYz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0
cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZE9w
YWNpdHlBbmltYXRpb25Ub0xheWVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6YWRkVHJhbnNmb3JtQW5pbWF0aW9uVG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpU
RVNUKToKKwogMjAxMi0wMy0xNiAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIFRocmVhZGVkIG9wYWNpdHkgYW5pbWF0aW9uIGp1bXAgdG8g
b3BhY2l0eSBvZiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IGQ0Y2FkMjRhNjEzYjZhNzk1
NDkzOWQxNDU1OWI3ZWZmYjFmYzYwODkuLjNjMWVmMjUwZTQ2ZWY4ZGQ3ZjRkNTJkNDk1ZjU3ZmZi
ZThkOTQ5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC04Miw2ICs4Miw4IEBAIExheWVy
Q2hyb21pdW06OkxheWVyQ2hyb21pdW0oKQogICAgICwgbV9kcmF3T3BhY2l0eSgwKQogICAgICwg
bV9kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKGZhbHNlKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJm
YWNlKDApCisgICAgLCBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQoZmFsc2UpCisg
ICAgLCBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4oZmFsc2UpCiAgICAgLCBtX2Nv
bnRlbnRzU2NhbGUoMS4wKQogICAgICwgbV9sYXllckFuaW1hdGlvbkRlbGVnYXRlKDApCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmgKaW5kZXggMDA4MTUwY2FiYjhjODFlMzVmZGNlZWNmZjA3NTRkMTZlMTk3
YjU1Ny4uYmI1YWExMWI5YTJhYTc0ZDQyNzg3MjlhYTMyNzU5Y2ViYWM3NmZkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uaApAQCAtMTk3LDYgKzE5NywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGlw
UmVjdChjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkgeyBtX2NsaXBSZWN0ID0gY2xpcFJlY3Q7IH0K
ICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIHRhcmdldFJlbmRlclN1cmZhY2UoKSBjb25zdCB7
IHJldHVybiBtX3RhcmdldFJlbmRlclN1cmZhY2U7IH0KICAgICB2b2lkIHNldFRhcmdldFJlbmRl
clN1cmZhY2UoUmVuZGVyU3VyZmFjZUNocm9taXVtKiBzdXJmYWNlKSB7IG1fdGFyZ2V0UmVuZGVy
U3VyZmFjZSA9IHN1cmZhY2U7IH0KKworICAgIGJvb2wgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJ
blRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdl
dDsgfQorICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldChib29sIGFu
aW1hdGluZykgeyBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQgPSBhbmltYXRpbmc7
IH0KKyAgICBib29sIGRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4oKSBjb25zdCB7IHJl
dHVybiBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW47IH0KKyAgICB2b2lkIHNldERy
YXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4oYm9vbCBhbmltYXRpbmcpIHsgbV9kcmF3VHJh
bnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuID0gYW5pbWF0aW5nOyB9CisKICAgICAvLyBUaGlzIG1v
dmVzIGZyb20gbGF5ZXIgc3BhY2UsIHdpdGggb3JpZ2luIGluIHRoZSBjZW50ZXIgdG8gdGFyZ2V0
IHNwYWNlIHdpdGggb3JpZ2luIGluIHRoZSB0b3AgbGVmdAogICAgIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBkcmF3VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3VHJhbnNmb3Jt
OyB9CiAgICAgdm9pZCBzZXREcmF3VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtYXRyaXgpIHsgbV9kcmF3VHJhbnNmb3JtID0gbWF0cml4OyB9CkBAIC0zMjQsNiArMzMwLDgg
QEAgcHJpdmF0ZToKICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIG1fdGFyZ2V0UmVuZGVyU3Vy
ZmFjZTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2RyYXdUcmFuc2Zvcm07CiAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggbV9zY3JlZW5TcGFjZVRyYW5zZm9ybTsKKyAgICBib29sIG1fZHJh
d1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldDsKKyAgICBib29sIG1fZHJhd1RyYW5zZm9ybXNB
bmltYXRpbmdJblNjcmVlbjsKICAgICBJbnRSZWN0IG1fZHJhd2FibGVDb250ZW50UmVjdDsKICAg
ICBmbG9hdCBtX2NvbnRlbnRzU2NhbGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21p
dW0uY3BwCmluZGV4IDJlOTk5OGE3YTExNGZmNjgxYWQyZGM2NWE0NmZhN2ZmZTU3N2MxNDMuLjgz
NDMzOTFhMDA4OWIzNjI2OWZlMGRhZDMzYzhiYzU2MGRhNGYwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVu
ZGVyU3VyZmFjZUNocm9taXVtLmNwcApAQCAtNDMsNiArNDMsOCBAQCBSZW5kZXJTdXJmYWNlQ2hy
b21pdW06OlJlbmRlclN1cmZhY2VDaHJvbWl1bShMYXllckNocm9taXVtKiBvd25pbmdMYXllcikK
ICAgICAsIG1fc2tpcHNEcmF3KGZhbHNlKQogICAgICwgbV9kcmF3T3BhY2l0eSgxKQogICAgICwg
bV9kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKGZhbHNlKQorICAgICwgbV9kcmF3VHJhbnNmb3Jtc0Fu
aW1hdGluZ0luVGFyZ2V0KGZhbHNlKQorICAgICwgbV9kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0lu
U2NyZWVuKGZhbHNlKQogICAgICwgbV9uZWFyZXN0QW5jZXN0b3JUaGF0TW92ZXNQaXhlbHMoMCkK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKaW5kZXggM2EzMDRjMTg1ZDdm
OTMyNTJmNDQzY2M0MjM0NjFjOTlhYjk3Y2RkZi4uMTc5ZjM4Y2UyZWY0MTFhYTI3MzA0NjZiOTZh
ZDY0MzQ3OTZmZDVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKQEAgLTc3
LDYgKzc3LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcmVw
bGljYURyYXdUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3JlcGxpY2FEcmF3VHJhbnNmb3Jt
OyB9CiAgICAgdm9pZCBzZXRSZXBsaWNhRHJhd1RyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgcmVwbGljYURyYXdUcmFuc2Zvcm0pIHsgbV9yZXBsaWNhRHJhd1RyYW5zZm9ybSA9
IHJlcGxpY2FEcmF3VHJhbnNmb3JtOyB9CiAKKyAgICBib29sIGRyYXdUcmFuc2Zvcm1zQW5pbWF0
aW5nSW5UYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5U
YXJnZXQ7IH0KKyAgICB2b2lkIHNldERyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQoYm9v
bCBhbmltYXRpbmcpIHsgbV9kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0ID0gYW5pbWF0
aW5nOyB9CisgICAgYm9vbCBkcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKCkgY29uc3Qg
eyByZXR1cm4gbV9kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuOyB9CisgICAgdm9pZCBz
ZXREcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKGJvb2wgYW5pbWF0aW5nKSB7IG1fZHJh
d1RyYW5zZm9ybXNBbmltYXRpbmdJblNjcmVlbiA9IGFuaW1hdGluZzsgfQorCiAgICAgY29uc3Qg
SW50UmVjdCYgY2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2NsaXBSZWN0OyB9CiAgICAgdm9p
ZCBzZXRDbGlwUmVjdChjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkgeyBtX2NsaXBSZWN0ID0gY2xp
cFJlY3Q7IH0KIApAQCAtMTA2LDYgKzExMSw4IEBAIHByaXZhdGU6CiAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggbV9kcmF3VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcmVw
bGljYURyYXdUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9vcmlnaW5UcmFu
c2Zvcm07CisgICAgYm9vbCBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQ7CisgICAg
Ym9vbCBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW47CiAgICAgRmlsdGVyT3BlcmF0
aW9ucyBtX2ZpbHRlcnM7CiAgICAgSW50UmVjdCBtX2NsaXBSZWN0OwogICAgIFZlY3RvcjxSZWZQ
dHI8TGF5ZXJDaHJvbWl1bT4gPiBtX2xheWVyTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApp
bmRleCBhZDM0MGY4ZjFkZDNjNWQxNjMzNmVhOGYyODY0OWUxODBhNThjZmU1Li40Yzc3MzBlZTdi
ZTgzYzI1NzQ4YjhjMzkxYWZiYTU3ZWUzOWIxMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3Bw
CkBAIC02OCw2ICs2OCw4IEBAIENDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbChpbnQgaWQpCiAgICAg
LCBtX2RyYXdPcGFjaXR5SXNBbmltYXRpbmcoZmFsc2UpCiAgICAgLCBtX2RlYnVnQm9yZGVyQ29s
b3IoMCwgMCwgMCwgMCkKICAgICAsIG1fZGVidWdCb3JkZXJXaWR0aCgwKQorICAgICwgbV9kcmF3
VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0KGZhbHNlKQorICAgICwgbV9kcmF3VHJhbnNmb3Jt
c0FuaW1hdGluZ0luU2NyZWVuKGZhbHNlKQogICAgICwgbV9sYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXIoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJJbXBsOjpjcmVhdGUodGhpcykpCiB7CiAgICAg
QVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4
IGU1MWE1OTJlYTc1ODExYTg4ZDA1NmZkZWNmYjA0MDk1ZjViODZhY2MuLjdjMzhkM2M5NjZlM2Rk
NzY4NWZmNzQ0MzMyNmQ1ZWU4NDgyYTZlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtMjEy
LDYgKzIxMiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREcmF3VHJhbnNmb3JtKGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpIHsgbV9kcmF3VHJhbnNmb3JtID0gbWF0cml4OyB9
CiAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHNjcmVlblNwYWNlVHJhbnNmb3JtKCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JlZW5TcGFjZVRyYW5zZm9ybTsgfQogICAgIHZvaWQgc2V0U2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkgeyBt
X3NjcmVlblNwYWNlVHJhbnNmb3JtID0gbWF0cml4OyB9CisKKyAgICBib29sIGRyYXdUcmFuc2Zv
cm1zQW5pbWF0aW5nSW5UYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdUcmFuc2Zvcm1zQW5p
bWF0aW5nSW5UYXJnZXQ7IH0KKyAgICB2b2lkIHNldERyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5U
YXJnZXQoYm9vbCBhbmltYXRpbmcpIHsgbV9kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0
ID0gYW5pbWF0aW5nOyB9CisgICAgYm9vbCBkcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVu
KCkgY29uc3QgeyByZXR1cm4gbV9kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuOyB9Cisg
ICAgdm9pZCBzZXREcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKGJvb2wgYW5pbWF0aW5n
KSB7IG1fZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblNjcmVlbiA9IGFuaW1hdGluZzsgfQorCiAg
ICAgY29uc3QgSW50UmVjdCYgZHJhd2FibGVDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZHJhd2FibGVDb250ZW50UmVjdDsgfQogICAgIHZvaWQgc2V0RHJhd2FibGVDb250ZW50UmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KSB7IG1fZHJhd2FibGVDb250ZW50UmVjdCA9IHJlY3Q7IH0KICAg
ICBjb25zdCBGbG9hdFJlY3QmIHVwZGF0ZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVJl
Y3Q7IH0KQEAgLTMzMiw2ICszMzgsOCBAQCBwcml2YXRlOgogCiAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbV9kcmF3VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc2NyZWVu
U3BhY2VUcmFuc2Zvcm07CisgICAgYm9vbCBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJn
ZXQ7CisgICAgYm9vbCBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW47CiAKICAgICAv
LyBUaGUgcmVjdCB0aGF0IGNvbnRyaWJ1dGVzIHRvIHRoZSBzY2lzc29yIHdoZW4gdGhpcyBsYXll
ciBpcyBkcmF3bi4KICAgICAvLyBJbmhlcml0ZWQgYnkgdGhlIHBhcmVudCBsYXllciBhbmQgZnVy
dGhlciByZXN0cmljdGVkIGlmIHRoaXMgbGF5ZXIgbWFza3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1v
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IGRiNjMxNWM0OTU3NDg4OTFhYjY0MGI5ZTRiZjJl
OWE2OTZmMzE4OTkuLjE5MTg2Y2YzZTFiYzk0NzUxODRiOWQyNGEwZTlkZDExZTI4Yzc2NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcApAQCAtMTA4LDcgKzEw
OCw3IEBAIHN0YXRpYyBib29sIGxheWVyU2hvdWxkQmVTa2lwcGVkKExheWVyVHlwZSogbGF5ZXIp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBzdWJ0cmVlU2hvdWxkQmVTa2lw
cGVkKENDTGF5ZXJJbXBsKiBsYXllcikKK3N0YXRpYyBpbmxpbmUgYm9vbCBzdWJ0cmVlU2hvdWxk
QmVTa2lwcGVkKENDTGF5ZXJJbXBsKiBsYXllcikKIHsKICAgICAvLyBUaGUgb3BhY2l0eSBvZiBh
IGxheWVyIGFsd2F5cyBhcHBsaWVzIHRvIGl0cyBjaGlsZHJlbiAoZWl0aGVyIGltcGxpY2l0bHkK
ICAgICAvLyB2aWEgYSByZW5kZXIgc3VyZmFjZSBvciBleHBsaWNpdGx5IGlmIHRoZSBwYXJlbnQg
cHJlc2VydmVzIDNEKSwgc28gdGhlCkBAIC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIGJvb2wgc3Vi
dHJlZVNob3VsZEJlU2tpcHBlZChDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgcmV0dXJuICFsYXll
ci0+b3BhY2l0eSgpOwogfQogCi1zdGF0aWMgYm9vbCBzdWJ0cmVlU2hvdWxkQmVTa2lwcGVkKExh
eWVyQ2hyb21pdW0qIGxheWVyKQorc3RhdGljIGlubGluZSBib29sIHN1YnRyZWVTaG91bGRCZVNr
aXBwZWQoTGF5ZXJDaHJvbWl1bSogbGF5ZXIpCiB7CiAgICAgLy8gSWYgdGhlIG9wYWNpdHkgaXMg
YmVpbmcgYW5pbWF0ZWQgdGhlbiB0aGUgb3BhY2l0eSBvbiB0aGUgbWFpbiB0aHJlYWQgaXMgdW5y
ZWxpYWJsZQogICAgIC8vIChzaW5jZSB0aGUgaW1wbCB0aHJlYWQgbWF5IGJlIHVzaW5nIGEgZGlm
ZmVyZW50IG9wYWNpdHkpLCBzbyBpdCBzaG91bGQgbm90IGJlIHRydXN0ZWQuCkBAIC0xMjQsNiAr
MTI0LDE5IEBAIHN0YXRpYyBib29sIHN1YnRyZWVTaG91bGRCZVNraXBwZWQoTGF5ZXJDaHJvbWl1
bSogbGF5ZXIpCiAgICAgcmV0dXJuICFsYXllci0+b3BhY2l0eSgpICYmICFsYXllci0+b3BhY2l0
eUlzQW5pbWF0aW5nKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBsYXllck9wYWNpdHlJc09w
YXF1ZShDQ0xheWVySW1wbCogbGF5ZXIpCit7CisgICAgcmV0dXJuIGxheWVyLT5vcGFjaXR5KCkg
PT0gMTsKK30KKworc3RhdGljIGlubGluZSBib29sIGxheWVyT3BhY2l0eUlzT3BhcXVlKExheWVy
Q2hyb21pdW0qIGxheWVyKQoreworICAgIC8vIElmIHRoZSBvcGFjaXR5IGlzIGJlaW5nIGFuaW1h
dGVkIHRoZW4gdGhlIG9wYWNpdHkgb24gdGhlIG1haW4gdGhyZWFkIGlzIHVucmVsaWFibGUKKyAg
ICAvLyAoc2luY2UgdGhlIGltcGwgdGhyZWFkIG1heSBiZSB1c2luZyBhIGRpZmZlcmVudCBvcGFj
aXR5KSwgc28gaXQgc2hvdWxkIG5vdCBiZSB0cnVzdGVkLgorICAgIC8vIEluIHBhcnRpY3VsYXIs
IGl0IHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBvcGFxdWUuCisgICAgcmV0dXJuIGxheWVyLT5v
cGFjaXR5KCkgPT0gMSAmJiAhbGF5ZXItPm9wYWNpdHlJc0FuaW1hdGluZygpOworfQorCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBMYXllclR5cGU+CiBzdGF0aWMgYm9vbCBzdWJ0cmVlU2hvdWxkUmVuZGVy
VG9TZXBhcmF0ZVN1cmZhY2UoTGF5ZXJUeXBlKiBsYXllciwgYm9vbCBheGlzQWxpZ25lZFdpdGhS
ZXNwZWN0VG9QYXJlbnQpCiB7CkBAIC0xNjEsNyArMTc0LDcgQEAgc3RhdGljIGJvb2wgc3VidHJl
ZVNob3VsZFJlbmRlclRvU2VwYXJhdGVTdXJmYWNlKExheWVyVHlwZSogbGF5ZXIsIGJvb2wgYXhp
c0FsaWcKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBJZiB0aGUgbGF5ZXIgaGFzIG9w
YWNpdHkgIT0gMSBhbmQgZG9lcyBub3QgaGF2ZSBhIHByZXNlcnZlcy0zZCB0cmFuc2Zvcm0gc3R5
bGUuCi0gICAgaWYgKGxheWVyLT5vcGFjaXR5KCkgIT0gMSAmJiAhbGF5ZXItPnByZXNlcnZlczNE
KCkgJiYgZGVzY2VuZGFudERyYXdzQ29udGVudCkKKyAgICBpZiAoIWxheWVyT3BhY2l0eUlzT3Bh
cXVlKGxheWVyKSAmJiAhbGF5ZXItPnByZXNlcnZlczNEKCkgJiYgZGVzY2VuZGFudERyYXdzQ29u
dGVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODEs
NiArMjk0LDEzIEBAIHN0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJp
bGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggY29tYmluZWRUcmFuc2Zvcm0gPSBwYXJlbnRNYXRyaXg7CiAgICAgY29tYmluZWRUcmFu
c2Zvcm0gPSBjb21iaW5lZFRyYW5zZm9ybS5tdWx0aXBseShsYXllckxvY2FsVHJhbnNmb3JtKTsK
IAorICAgIGJvb2wgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCA9IGxheWVyLT50cmFu
c2Zvcm1Jc0FuaW1hdGluZygpOworICAgIGJvb2wgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblNj
cmVlbiA9IGxheWVyLT50cmFuc2Zvcm1Jc0FuaW1hdGluZygpOworICAgIGlmIChsYXllci0+cGFy
ZW50KCkpIHsKKyAgICAgICAgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCB8PSBsYXll
ci0+cGFyZW50KCktPmRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQoKTsKKyAgICAgICAg
ZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblNjcmVlbiB8PSBsYXllci0+cGFyZW50KCktPmRyYXdU
cmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4oKTsKKyAgICB9CisKICAgICBGbG9hdFJlY3QgbGF5
ZXJSZWN0KC0wLjUgKiBsYXllci0+Ym91bmRzKCkud2lkdGgoKSwgLTAuNSAqIGxheWVyLT5ib3Vu
ZHMoKS5oZWlnaHQoKSwgbGF5ZXItPmJvdW5kcygpLndpZHRoKCksIGxheWVyLT5ib3VuZHMoKS5o
ZWlnaHQoKSk7CiAgICAgSW50UmVjdCB0cmFuc2Zvcm1lZExheWVyUmVjdDsKIApAQCAtMzE1LDYg
KzMzNSwxMiBAQCBzdGF0aWMgYm9vbCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxp
dHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgICAgICBsYXllck9yaWdpblRy
YW5zZm9ybS50cmFuc2xhdGUzZCgtMC41ICogYm91bmRzLndpZHRoKCksIC0wLjUgKiBib3VuZHMu
aGVpZ2h0KCksIDApOwogICAgICAgICByZW5kZXJTdXJmYWNlLT5zZXRPcmlnaW5UcmFuc2Zvcm0o
bGF5ZXJPcmlnaW5UcmFuc2Zvcm0pOwogCisgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldERyYXdU
cmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQoZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdl
dCk7CisgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldERyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5T
Y3JlZW4oZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblNjcmVlbik7CisgICAgICAgIGRyYXdUcmFu
c2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQgPSBmYWxzZTsKKyAgICAgICAgbGF5ZXItPnNldERyYXdU
cmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQoZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdl
dCk7CisgICAgICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKGRy
YXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4pOworCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUg
YWdncmVnYXRlIGhpZXJhcmNoeSBtYXRyaXggdG8gaW5jbHVkZSB0aGUgdHJhbnNmb3JtIG9mIHRo
ZSBuZXdseSBjcmVhdGVkIFJlbmRlclN1cmZhY2UuCiAgICAgICAgIG5leHRIaWVyYXJjaHlNYXRy
aXgubXVsdGlwbHkobGF5ZXJPcmlnaW5UcmFuc2Zvcm0pOwogCkBAIC0zNDAsNiArMzY2LDggQEAg
c3RhdGljIGJvb2wgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwo
TGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAgcmVuZGVyU3VyZmFjZUxheWVyTGlzdC5h
cHBlbmQobGF5ZXIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGxheWVyLT5zZXREcmF3VHJhbnNm
b3JtKGNvbWJpbmVkVHJhbnNmb3JtKTsKKyAgICAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm1z
QW5pbWF0aW5nSW5UYXJnZXQoZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCk7CisgICAg
ICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKGRyYXdUcmFuc2Zv
cm1zQW5pbWF0aW5nSW5TY3JlZW4pOwogICAgICAgICB0cmFuc2Zvcm1lZExheWVyUmVjdCA9IGVu
Y2xvc2luZ0ludFJlY3QobGF5ZXItPmRyYXdUcmFuc2Zvcm0oKS5tYXBSZWN0KGxheWVyUmVjdCkp
OwogCiAgICAgICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eShkcmF3T3BhY2l0eSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRl
clN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NSZW5kZXJTdXJmYWNlLmNwcAppbmRleCBlMWY1NzA0YmRhM2M2ZWJhYjQwNjE1ZjVhZWEw
NWFiOThlZjcyYzlkLi44ZjRlN2JlMTdjNmFhZWQzYzRlNDhiZDM0NjdjMzk0YmExMjAyYjE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1JlbmRlclN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5jcHAKQEAgLTUzLDYgKzUzLDggQEAgQ0NSZW5k
ZXJTdXJmYWNlOjpDQ1JlbmRlclN1cmZhY2UoQ0NMYXllckltcGwqIG93bmluZ0xheWVyKQogICAg
ICwgbV9zdXJmYWNlUHJvcGVydHlDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9kcmF3T3BhY2l0eSgx
KQogICAgICwgbV9kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKGZhbHNlKQorICAgICwgbV9kcmF3VHJh
bnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0KGZhbHNlKQorICAgICwgbV9kcmF3VHJhbnNmb3Jtc0Fu
aW1hdGluZ0luU2NyZWVuKGZhbHNlKQogICAgICwgbV9uZWFyZXN0QW5jZXN0b3JUaGF0TW92ZXNQ
aXhlbHMoMCkKIHsKICAgICBtX2RhbWFnZVRyYWNrZXIgPSBDQ0RhbWFnZVRyYWNrZXI6OmNyZWF0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAppbmRleCA2ODNkMTY2ZDBiNzg0ZDk4MDk4
NDFmZjI2MWM4ZTlhNGYwNTZiZWFmLi5mYmQ3NTM3NDk3MjRhZDgzNmFhZjk2MmI1MzdlMzUxMjYw
Y2M1MmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaApAQCAtODksNiArODksMTEgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0T3JpZ2luVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBvcmlnaW5UcmFuc2Zvcm0pIHsgbV9vcmlnaW5UcmFuc2Zvcm0gPSBvcmlnaW5UcmFu
c2Zvcm07IH0KICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgb3JpZ2luVHJhbnNmb3Jt
KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5UcmFuc2Zvcm07IH0KIAorICAgIGJvb2wgZHJhd1Ry
YW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd1RyYW5zZm9y
bXNBbmltYXRpbmdJblRhcmdldDsgfQorICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybXNBbmltYXRp
bmdJblRhcmdldChib29sIGFuaW1hdGluZykgeyBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5U
YXJnZXQgPSBhbmltYXRpbmc7IH0KKyAgICBib29sIGRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5T
Y3JlZW4oKSBjb25zdCB7IHJldHVybiBtX2RyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW47
IH0KKyAgICB2b2lkIHNldERyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4oYm9vbCBhbmlt
YXRpbmcpIHsgbV9kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuID0gYW5pbWF0aW5nOyB9
CisKICAgICB2b2lkIHNldENsaXBSZWN0KGNvbnN0IEludFJlY3QmKTsKICAgICBjb25zdCBJbnRS
ZWN0JiBjbGlwUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcFJlY3Q7IH0KIApAQCAtMTM4LDYg
KzE0Myw4IEBAIHByaXZhdGU6CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9kcmF3VHJhbnNm
b3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcmVwbGljYURyYXdUcmFuc2Zvcm07CiAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9vcmlnaW5UcmFuc2Zvcm07CisgICAgYm9vbCBtX2Ry
YXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQ7CisgICAgYm9vbCBtX2RyYXdUcmFuc2Zvcm1z
QW5pbWF0aW5nSW5TY3JlZW47CiAgICAgRmlsdGVyT3BlcmF0aW9ucyBtX2ZpbHRlcnM7CiAgICAg
SW50UmVjdCBtX2NsaXBSZWN0OwogICAgIFZlY3RvcjxDQ0xheWVySW1wbCo+IG1fbGF5ZXJMaXN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RDb21tb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdC5jcHAKaW5kZXggZTYyMDZjYzU4ZjkwMzNiNWZmY2FhNjllZWI0ZDI5
MGYzNTFlZDNmMy4uZjU5YjI1Y2RlMjc0YmQxMzllNzM4ODE5NjY3Y2YwMjk1ZTRiYzRlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQ0NMYXllclRy
ZWVUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlRy
YW5zZm9ybWF0aW9uTWF0cml4LmgiCisjaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmgiCisjaW5jbHVkZSAiY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKIAogI2lu
Y2x1ZGUgPGdtb2NrL2dtb2NrLmg+CiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KQEAgLTU4Miw2
ICs1ODQsMTc2IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5Q2xpcFJl
Y3RDdWxsc1JlbmRlclN1cmZhY2VzKQogICAgIEVYUEVDVF9FUShjaGlsZC0+aWQoKSwgcmVuZGVy
U3VyZmFjZUxheWVyTGlzdFsxXS0+aWQoKSk7CiB9CiAKK3N0YXRpYyBpbnQgYWRkT3BhY2l0eUFu
aW1hdGlvblRvTGF5ZXIoTGF5ZXJDaHJvbWl1bSogbGF5ZXIsIGZsb2F0IHN0YXJ0VmFsdWUsIGZs
b2F0IGVuZFZhbHVlLCBkb3VibGUgZHVyYXRpb24pCit7CisgICAgc3RhdGljIGludCBpZCA9IDA7
CisgICAgV2ViQ29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3QgdmFsdWVzKEFuaW1hdGVkUHJvcGVydHlP
cGFjaXR5KTsKKyAgICB2YWx1ZXMuaW5zZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKDAsIHN0
YXJ0VmFsdWUpKTsKKyAgICB2YWx1ZXMuaW5zZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKGR1
cmF0aW9uLCBlbmRWYWx1ZSkpOworCisgICAgUmVmUHRyPEFuaW1hdGlvbj4gYW5pbWF0aW9uID0g
QW5pbWF0aW9uOjpjcmVhdGUoKTsKKyAgICBhbmltYXRpb24tPnNldER1cmF0aW9uKGR1cmF0aW9u
KTsKKworICAgIEludFNpemUgYm94U2l6ZTsKKyAgICBsYXllci0+bGF5ZXJBbmltYXRpb25Db250
cm9sbGVyKCktPmFkZEFuaW1hdGlvbih2YWx1ZXMsIGJveFNpemUsIGFuaW1hdGlvbi5nZXQoKSwg
aWQsIDAsIDApOworICAgIHJldHVybiBpZCsrOworfQorCitzdGF0aWMgaW50IGFkZFRyYW5zZm9y
bUFuaW1hdGlvblRvTGF5ZXIoTGF5ZXJDaHJvbWl1bSogbGF5ZXIsIGRvdWJsZSBkdXJhdGlvbikK
K3sKKyAgICBzdGF0aWMgaW50IGlkID0gMDsKKyAgICBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlz
dCB2YWx1ZXMoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CisKKyAgICBUcmFuc2Zv
cm1PcGVyYXRpb25zIG9wZXJhdGlvbnMxOworICAgIG9wZXJhdGlvbnMxLm9wZXJhdGlvbnMoKS5h
cHBlbmQoVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3RoKDIsIEZpeGVk
KSwgTGVuZ3RoKDAsIEZpeGVkKSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWCkpOwor
ICAgIHZhbHVlcy5pbnNlcnQobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDAsICZvcGVyYXRp
b25zMSkpOworCisgICAgUmVmUHRyPEFuaW1hdGlvbj4gYW5pbWF0aW9uID0gQW5pbWF0aW9uOjpj
cmVhdGUoKTsKKyAgICBhbmltYXRpb24tPnNldER1cmF0aW9uKGR1cmF0aW9uKTsKKworICAgIElu
dFNpemUgYm94U2l6ZTsKKyAgICBsYXllci0+bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCktPmFk
ZEFuaW1hdGlvbih2YWx1ZXMsIGJveFNpemUsIGFuaW1hdGlvbi5nZXQoKSwgaWQsIDAsIDApOwor
ICAgIHJldHVybiBpZCsrOworfQorCitURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeUFuaW1hdGlvbnNGb3JSZW5kZXJTdXJmYWNlSGllcmFyY2h5KQoreworICAgIFJlZlB0cjxM
YXllckNocm9taXVtPiBwYXJlbnQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQ
dHI8TGF5ZXJDaHJvbWl1bT4gcmVuZGVyU3VyZmFjZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUo
KTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gcmVuZGVyU3VyZmFjZTIgPSBMYXllckNocm9t
aXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gY2hpbGRPZlJvb3QgPSBM
YXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gY2hpbGRP
ZlJTMSA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOworICAgIFJlZlB0cjxMYXllckNocm9taXVt
PiBjaGlsZE9mUlMyID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPExheWVy
Q2hyb21pdW0+IGdyYW5kQ2hpbGRPZlJvb3QgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAg
ICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+IGdyYW5kQ2hpbGRP
ZlJTMSA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgp
KTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+IGdyYW5k
Q2hpbGRPZlJTMiA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29u
dGVudCgpKTsKKyAgICBwYXJlbnQtPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBwYXJlbnQt
PmFkZENoaWxkKHJlbmRlclN1cmZhY2UxKTsKKyAgICBwYXJlbnQtPmFkZENoaWxkKGNoaWxkT2ZS
b290KTsKKyAgICByZW5kZXJTdXJmYWNlMS0+YWRkQ2hpbGQoY2hpbGRPZlJTMSk7CisgICAgcmVu
ZGVyU3VyZmFjZTEtPmFkZENoaWxkKHJlbmRlclN1cmZhY2UyKTsKKyAgICByZW5kZXJTdXJmYWNl
Mi0+YWRkQ2hpbGQoY2hpbGRPZlJTMik7CisgICAgY2hpbGRPZlJvb3QtPmFkZENoaWxkKGdyYW5k
Q2hpbGRPZlJvb3QpOworICAgIGNoaWxkT2ZSUzEtPmFkZENoaWxkKGdyYW5kQ2hpbGRPZlJTMSk7
CisgICAgY2hpbGRPZlJTMi0+YWRkQ2hpbGQoZ3JhbmRDaGlsZE9mUlMyKTsKKworICAgIC8vIElu
IGNvbWJpbmF0aW9uIHdpdGggZGVzY2VuZGFudERyYXdzQ29udGVudCwgb3BhY2l0eSAhPSAxIGZv
cmNlcyB0aGUgbGF5ZXIgdG8gaGF2ZSBhIG5ldyByZW5kZXJTdXJmYWNlLgorICAgIGFkZE9wYWNp
dHlBbmltYXRpb25Ub0xheWVyKHJlbmRlclN1cmZhY2UxLmdldCgpLCAxLCAwLCAxMCk7CisgICAg
YWRkT3BhY2l0eUFuaW1hdGlvblRvTGF5ZXIocmVuZGVyU3VyZmFjZTIuZ2V0KCksIDEsIDAsIDEw
KTsKKworICAgIC8vIEFsc28gcHV0IGFuIGFuaW1hdGlvbiBvbiBhIGxheWVyIHdpdGhvdXQgZGVz
Y2VuZGFudHMuCisgICAgYWRkT3BhY2l0eUFuaW1hdGlvblRvTGF5ZXIoZ3JhbmRDaGlsZE9mUm9v
dC5nZXQoKSwgMSwgMCwgMTApOworCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUcmFu
c2Zvcm07CisgICAgbGF5ZXJUcmFuc2Zvcm0udHJhbnNsYXRlKDEuMCwgMS4wKTsKKyAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBzdWJsYXllclRyYW5zZm9ybTsKKyAgICBzdWJsYXllclRyYW5zZm9y
bS5zY2FsZTNkKDEwLjAsIDEuMCwgMS4wKTsKKworICAgIC8vIFB1dCB0cmFuc2Zvcm0gYW5pbWF0
aW9ucyBvbiB0aGUgcGFyZW50LCByZW5kZXJTdXJmYWNlMiwgZ3JhbmRDaGlsZE9mUm9vdCwgYW5k
IGdyYW5kQ2hpbGRPZlJTMgorICAgIGFkZFRyYW5zZm9ybUFuaW1hdGlvblRvTGF5ZXIocGFyZW50
LmdldCgpLCAxMCk7CisgICAgYWRkVHJhbnNmb3JtQW5pbWF0aW9uVG9MYXllcihncmFuZENoaWxk
T2ZSb290LmdldCgpLCAxMCk7CisgICAgYWRkVHJhbnNmb3JtQW5pbWF0aW9uVG9MYXllcihyZW5k
ZXJTdXJmYWNlMi5nZXQoKSwgMTApOworICAgIGFkZFRyYW5zZm9ybUFuaW1hdGlvblRvTGF5ZXIo
Z3JhbmRDaGlsZE9mUlMyLmdldCgpLCAxMCk7CisKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JU
ZXN0aW5nKHBhcmVudC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBG
bG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgx
MCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyZW5kZXJT
dXJmYWNlMS5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBv
aW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTAp
LCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyZW5kZXJTdXJmYWNl
Mi5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAu
MjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxz
ZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZE9mUm9vdC5nZXQoKSwg
bGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBm
KSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisgICAg
c2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZE9mUlMxLmdldCgpLCBsYXllclRyYW5z
Zm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBv
aW50KDIuNWYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclBy
b3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkT2ZSUzIuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJs
YXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41Ziwg
MC4wZiksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0Zv
clRlc3RpbmcoZ3JhbmRDaGlsZE9mUm9vdC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVy
VHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBm
KSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVz
dGluZyhncmFuZENoaWxkT2ZSUzEuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5z
Zm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIElu
dFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rpbmco
Z3JhbmRDaGlsZE9mUlMyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0s
IEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDIuNWYsIDAuMGYpLCBJbnRTaXpl
KDEwLCAxMCksIGZhbHNlKTsKKworICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0Fu
ZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKKworICAgIC8vIE9ubHkgbGF5ZXJzIHRoYXQgYXJl
IGFzc29jaWF0ZWQgd2l0aCByZW5kZXIgc3VyZmFjZXMgc2hvdWxkIGhhdmUgYW4gYWN0dWFsIHJl
bmRlclN1cmZhY2UoKSB2YWx1ZS4KKyAgICAvLworICAgIEFTU0VSVF9UUlVFKHBhcmVudC0+cmVu
ZGVyU3VyZmFjZSgpKTsKKyAgICBBU1NFUlRfRkFMU0UoY2hpbGRPZlJvb3QtPnJlbmRlclN1cmZh
Y2UoKSk7CisgICAgQVNTRVJUX0ZBTFNFKGdyYW5kQ2hpbGRPZlJvb3QtPnJlbmRlclN1cmZhY2Uo
KSk7CisKKyAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpKTsK
KyAgICBBU1NFUlRfRkFMU0UoY2hpbGRPZlJTMS0+cmVuZGVyU3VyZmFjZSgpKTsKKyAgICBBU1NF
UlRfRkFMU0UoZ3JhbmRDaGlsZE9mUlMxLT5yZW5kZXJTdXJmYWNlKCkpOworCisgICAgQVNTRVJU
X1RSVUUocmVuZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKSk7CisgICAgQVNTRVJUX0ZBTFNF
KGNoaWxkT2ZSUzItPnJlbmRlclN1cmZhY2UoKSk7CisgICAgQVNTRVJUX0ZBTFNFKGdyYW5kQ2hp
bGRPZlJTMi0+cmVuZGVyU3VyZmFjZSgpKTsKKworICAgIC8vIFZlcmlmeSBhbGwgdGFyZ2V0UmVu
ZGVyU3VyZmFjZSBhY2Nlc3NvcnMKKyAgICAvLworICAgIEVYUEVDVF9FUShwYXJlbnQtPnJlbmRl
clN1cmZhY2UoKSwgcGFyZW50LT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworICAgIEVYUEVDVF9F
UShwYXJlbnQtPnJlbmRlclN1cmZhY2UoKSwgY2hpbGRPZlJvb3QtPnRhcmdldFJlbmRlclN1cmZh
Y2UoKSk7CisgICAgRVhQRUNUX0VRKHBhcmVudC0+cmVuZGVyU3VyZmFjZSgpLCBncmFuZENoaWxk
T2ZSb290LT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworCisgICAgRVhQRUNUX0VRKHJlbmRlclN1
cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCksIHJlbmRlclN1cmZhY2UxLT50YXJnZXRSZW5kZXJTdXJm
YWNlKCkpOworICAgIEVYUEVDVF9FUShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLCBj
aGlsZE9mUlMxLT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworICAgIEVYUEVDVF9FUShyZW5kZXJT
dXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLCBncmFuZENoaWxkT2ZSUzEtPnRhcmdldFJlbmRlclN1
cmZhY2UoKSk7CisKKyAgICBFWFBFQ1RfRVEocmVuZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2Uo
KSwgcmVuZGVyU3VyZmFjZTItPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7CisgICAgRVhQRUNUX0VR
KHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCksIGNoaWxkT2ZSUzItPnRhcmdldFJlbmRl
clN1cmZhY2UoKSk7CisgICAgRVhQRUNUX0VRKHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNl
KCksIGdyYW5kQ2hpbGRPZlJTMi0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKKworICAgIC8vIFZl
cmlmeSBkcmF3T3BhY2l0eUlzQW5pbWF0aW5nIHZhbHVlcworICAgIC8vCisgICAgRVhQRUNUX0ZB
TFNFKHBhcmVudC0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
Y2hpbGRPZlJvb3QtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUo
Z3JhbmRDaGlsZE9mUm9vdC0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UocmVuZGVyU3VyZmFjZTEtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisgICAgRVhQ
RUNUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd09wYWNpdHlJc0Fu
aW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY2hpbGRPZlJTMS0+ZHJhd09wYWNpdHlJc0Fu
aW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZ3JhbmRDaGlsZE9mUlMxLT5kcmF3T3BhY2l0
eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShyZW5kZXJTdXJmYWNlMi0+ZHJhd09w
YWNpdHlJc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMi0+cmVu
ZGVyU3VyZmFjZSgpLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxT
RShjaGlsZE9mUlMyLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxT
RShncmFuZENoaWxkT2ZSUzItPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisKKyAgICAvLyBW
ZXJpZnkgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCB2YWx1ZXMKKyAgICAvLworICAg
IEVYUEVDVF9UUlVFKHBhcmVudC0+ZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCgpKTsK
KyAgICBFWFBFQ1RfVFJVRShjaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRh
cmdldCgpKTsKKyAgICBFWFBFQ1RfVFJVRShncmFuZENoaWxkT2ZSb290LT5kcmF3VHJhbnNmb3Jt
c0FuaW1hdGluZ0luVGFyZ2V0KCkpOworICAgIEVYUEVDVF9GQUxTRShyZW5kZXJTdXJmYWNlMS0+
ZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCgpKTsKKyAgICBFWFBFQ1RfVFJVRShyZW5k
ZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFy
Z2V0KCkpOworICAgIEVYUEVDVF9GQUxTRShjaGlsZE9mUlMxLT5kcmF3VHJhbnNmb3Jtc0FuaW1h
dGluZ0luVGFyZ2V0KCkpOworICAgIEVYUEVDVF9GQUxTRShncmFuZENoaWxkT2ZSUzEtPmRyYXdU
cmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlbmRlclN1
cmZhY2UyLT5kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0KCkpOworICAgIEVYUEVDVF9U
UlVFKHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm1zQW5pbWF0
aW5nSW5UYXJnZXQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNoaWxkT2ZSUzItPmRyYXdUcmFuc2Zv
cm1zQW5pbWF0aW5nSW5UYXJnZXQoKSk7CisgICAgRVhQRUNUX1RSVUUoZ3JhbmRDaGlsZE9mUlMy
LT5kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luVGFyZ2V0KCkpOworCisgICAgLy8gVmVyaWZ5IGRy
YXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4gdmFsdWVzCisgICAgLy8KKyAgICBFWFBFQ1Rf
VFJVRShwYXJlbnQtPmRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4oKSk7CisgICAgRVhQ
RUNUX1RSVUUoY2hpbGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4oKSk7
CisgICAgRVhQRUNUX1RSVUUoZ3JhbmRDaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybXNBbmltYXRp
bmdJblNjcmVlbigpKTsKKyAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMS0+ZHJhd1RyYW5z
Zm9ybXNBbmltYXRpbmdJblNjcmVlbigpKTsKKyAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNl
MS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKCkpOwor
ICAgIEVYUEVDVF9UUlVFKGNoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3Jl
ZW4oKSk7CisgICAgRVhQRUNUX1RSVUUoZ3JhbmRDaGlsZE9mUlMxLT5kcmF3VHJhbnNmb3Jtc0Fu
aW1hdGluZ0luU2NyZWVuKCkpOworICAgIEVYUEVDVF9UUlVFKHJlbmRlclN1cmZhY2UyLT5kcmF3
VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuKCkpOworICAgIEVYUEVDVF9UUlVFKHJlbmRlclN1
cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4o
KSk7CisgICAgRVhQRUNUX1RSVUUoY2hpbGRPZlJTMi0+ZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJ
blNjcmVlbigpKTsKKyAgICBFWFBFQ1RfVFJVRShncmFuZENoaWxkT2ZSUzItPmRyYXdUcmFuc2Zv
cm1zQW5pbWF0aW5nSW5TY3JlZW4oKSk7CisKKworICAgIC8vIFNhbml0eSBjaGVjay4gSWYgdGhl
c2UgZmFpbCB0aGVyZSBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUgdGVzdCBpdHNlbGYuCisgICAg
Ly8gSXQgaXMgZXhwZWN0ZWQgdGhhdCB3ZSBjb3JyZWN0bHkgc2V0IHVwIHRyYW5zZm9ybXMgc28g
dGhhdCB0aGUgeS1jb21wb25lbnQgb2YgdGhlIHNjcmVlbi1zcGFjZSB0cmFuc2Zvcm0KKyAgICAv
LyBlbmNvZGVzIHRoZSAiZGVwdGgiIG9mIHRoZSBsYXllciBpbiB0aGUgdHJlZS4KKyAgICBFWFBF
Q1RfRkxPQVRfRVEoMS4wLCBwYXJlbnQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwor
ICAgIEVYUEVDVF9GTE9BVF9FUSgyLjAsIGNoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMy4wLCBncmFuZENoaWxkT2ZSb290LT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgyLjAs
IHJlbmRlclN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBFWFBF
Q1RfRkxPQVRfRVEoMy4wLCBjaGlsZE9mUlMxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00Migp
KTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoNC4wLCBncmFuZENoaWxkT2ZSUzEtPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkubTQyKCkpOworCisgICAgRVhQRUNUX0ZMT0FUX0VRKDMuMCwgcmVuZGVyU3Vy
ZmFjZTItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOworICAgIEVYUEVDVF9GTE9BVF9F
USg0LjAsIGNoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOworICAgIEVY
UEVDVF9GTE9BVF9FUSg1LjAsIGdyYW5kQ2hpbGRPZlJTMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0o
KS5tNDIoKSk7Cit9CisKIC8vIEZJWE1FOgogLy8gY29udGludWUgd29ya2luZyBvbiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NDIKIC8vICAtIGFkZCBhIHRlc3Qg
dG8gdmVyaWZ5IGNsaXBwaW5nIHRoYXQgY2hhbmdlcyB0aGUgImNlbnRlciBwb2ludCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132371</attachid>
            <date>2012-03-16 13:58:24 -0700</date>
            <delta_ts>2012-03-16 17:38:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81363-20120316165821.patch</filename>
            <type>text/plain</type>
            <size>27355</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4MDRkN2E3Mzc5ZjFi
OTc3OTBkZjE3MWMzZGRkZDdiMDQyODJhMi4uMTVmNDFjYTMwZWFlMDUyY2U4ZjQ2ZmM4ZjEzYjY2
MGU1OGRiNDIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTAzLTE2ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVHJh
bnNmb3JtIGFuaW1hdGlvbiBzdGF0ZSBzaG91bGQgYmUgaW5oZXJpdGVkIGZyb20gcGFyZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzNjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgZHJh
d1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkgYW5kIHNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRp
bmcoKQorICAgICAgICB0byB0aGUgbGF5ZXIgY2xhc3NlcywgYW5kIHNpbWlsYXIgdG8gdGhlIHN1
cmZhY2UgY2xhc3Nlcy4gVGhlc2UgaW5oZXJpdAorICAgICAgICB0aGUgdmFsdWVzIGZyb20gdGhl
aXIgcGFyZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB0aGUgdHJhbnNmb3JtcworICAgICAgICB0
aGVtc2VsdmVzIGRvLCBhbmQgcmVmbGVjdCBpZiB0aGUgbGF5ZXIncyB0cmFuc2Zvcm0gaXMgYmVp
bmcgYWZmZWN0ZWQKKyAgICAgICAgYnkgc29tZSBhY3RpdmUgYW5pbWF0aW9uLgorCisgICAgICAg
IFRoZXNlIGNhbiBiZSB1c2VkIGluIG1haW4tdGhyZWFkIGN1bGxpbmcgd2hlbiBkZXRlcm1pbmlu
ZyBpZiB0aGUgbGF5ZXIncworICAgICAgICBwb3NpdGlvbiBpcyBzdGF0aWMgaW4gdGhlIGdpdmVu
IGNvb3JkaW5hdGUgc3BhY2Ugb3IgYmVpbmcgYW5pbWF0ZWQuCisKKyAgICAgICAgVW5pdCB0ZXN0
OiBDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LnZlcmlmeUFuaW1hdGlvbnNGb3JSZW5kZXJTdXJm
YWNlSGllcmFyY2h5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OkxheWVyQ2hy
b21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uaDoKKyAgICAgICAgKExheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJD
aHJvbWl1bTo6ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyQ2hyb21pdW06OnNldERyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpzY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldFNjcmVlblNwYWNlVHJhbnNmb3JtSXNB
bmltYXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1
cmZhY2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdXJmYWNlQ2hyb21p
dW06OlJlbmRlclN1cmZhY2VDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdXJmYWNlQ2hyb21pdW06OnRhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN1cmZhY2VDaHJvbWl1bTo6c2V0VGFyZ2V0U3VyZmFj
ZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3VyZmFj
ZUNocm9taXVtOjpzY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3VyZmFjZUNocm9taXVtOjpzZXRTY3JlZW5TcGFjZVRyYW5zZm9ybXNB
cmVBbmltYXRpbmcpOgorICAgICAgICAoUmVuZGVyU3VyZmFjZUNocm9taXVtKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVySW1wbDo6Q0NMYXllckltcGwpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6CisgICAgICAgIChDQ0xheWVySW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6ZHJhd1RyYW5zZm9ybUlzQW5pbWF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXREcmF3VHJhbnNmb3JtSXNB
bmltYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNjcmVlblNwYWNlVHJh
bnNmb3JtSXNBbmltYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldFNj
cmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzdWJ0cmVlU2hvdWxkQmVTa2lwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0
ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NSZW5kZXJTdXJmYWNlOjpDQ1JlbmRlclN1cmZhY2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NSZW5kZXJTdXJmYWNlOjp0YXJnZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclN1cmZhY2U6OnNldFRhcmdldFN1cmZhY2VU
cmFuc2Zvcm1zQXJlQW5pbWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyU3VyZmFj
ZTo6c2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDUmVuZGVyU3VyZmFjZTo6c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKToK
KyAgICAgICAgKENDUmVuZGVyU3VyZmFjZSk6CisKIDIwMTItMDMtMTYgIEtlbnRhcm8gSGFyYSAg
PGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRoZSBJREwgcGFyc2VyIHNob3VsZCBz
dXBwb3J0IHNlcXVlbmNlPFQ+IHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2Q2
OGIxZTIzNmI5OTViZGNkYjhhMmUwYzM2MGI0ZDhhNTM4ZWRmNS4uZjRjMjRmYTI5NjdhNjZmY2Mz
MDZiNjFjMWZmZDJkOGY0M2ViZmFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wMy0xNiAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFRyYW5zZm9ybSBhbmltYXRpb24gc3RhdGUgc2hvdWxk
IGJlIGluaGVyaXRlZCBmcm9tIHBhcmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgxMzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFkZE9wYWNpdHlBbmltYXRpb25Ub0xheWVyKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6YWRkVHJhbnNmb3JtQW5pbWF0aW9uVG9MYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMi0wMy0xNiAgSWFuIFZvbGxpY2sg
IDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFRocmVhZGVkIG9w
YWNpdHkgYW5pbWF0aW9uIGp1bXAgdG8gb3BhY2l0eSBvZiAwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3Bw
CmluZGV4IGQ0Y2FkMjRhNjEzYjZhNzk1NDkzOWQxNDU1OWI3ZWZmYjFmYzYwODkuLjgxZDM5NDRm
YjZkNjEzYjIwZjIxOWQwMGEzZDhmNTYwZjk0N2FlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3Bw
CkBAIC04Miw2ICs4Miw4IEBAIExheWVyQ2hyb21pdW06OkxheWVyQ2hyb21pdW0oKQogICAgICwg
bV9kcmF3T3BhY2l0eSgwKQogICAgICwgbV9kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKGZhbHNlKQog
ICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDApCisgICAgLCBtX2RyYXdUcmFuc2Zvcm1Jc0Fu
aW1hdGluZyhmYWxzZSkKKyAgICAsIG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZyhm
YWxzZSkKICAgICAsIG1fY29udGVudHNTY2FsZSgxLjApCiAgICAgLCBtX2xheWVyQW5pbWF0aW9u
RGVsZWdhdGUoMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAppbmRleCAwMDgxNTBjYWJiOGM4MWUzNWZk
Y2VlY2ZmMDc1NGQxNmUxOTdiNTU3Li41MTM0ZmQ1MWYzMGZkMmQzZjAzOTNhZTVhOTNmNDUwZTdm
ZDEwNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBAIC0xOTcsNiArMTk3LDEyIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldENsaXBSZWN0KGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSB7IG1fY2xpcFJl
Y3QgPSBjbGlwUmVjdDsgfQogICAgIFJlbmRlclN1cmZhY2VDaHJvbWl1bSogdGFyZ2V0UmVuZGVy
U3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZTsgfQogICAgIHZv
aWQgc2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIHN1cmZhY2Up
IHsgbV90YXJnZXRSZW5kZXJTdXJmYWNlID0gc3VyZmFjZTsgfQorCisgICAgYm9vbCBkcmF3VHJh
bnNmb3JtSXNBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2RyYXdUcmFuc2Zvcm1Jc0FuaW1h
dGluZzsgfQorICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKGJvb2wgYW5pbWF0
aW5nKSB7IG1fZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nID0gYW5pbWF0aW5nOyB9CisgICAgYm9v
bCBzY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9zY3Jl
ZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nOyB9CisgICAgdm9pZCBzZXRTY3JlZW5TcGFjZVRy
YW5zZm9ybUlzQW5pbWF0aW5nKGJvb2wgYW5pbWF0aW5nKSB7IG1fc2NyZWVuU3BhY2VUcmFuc2Zv
cm1Jc0FuaW1hdGluZyA9IGFuaW1hdGluZzsgfQorCiAgICAgLy8gVGhpcyBtb3ZlcyBmcm9tIGxh
eWVyIHNwYWNlLCB3aXRoIG9yaWdpbiBpbiB0aGUgY2VudGVyIHRvIHRhcmdldCBzcGFjZSB3aXRo
IG9yaWdpbiBpbiB0aGUgdG9wIGxlZnQKICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
ZHJhd1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd1RyYW5zZm9ybTsgfQogICAgIHZv
aWQgc2V0RHJhd1RyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4KSB7
IG1fZHJhd1RyYW5zZm9ybSA9IG1hdHJpeDsgfQpAQCAtMzI0LDYgKzMzMCw4IEBAIHByaXZhdGU6
CiAgICAgUmVuZGVyU3VyZmFjZUNocm9taXVtKiBtX3RhcmdldFJlbmRlclN1cmZhY2U7CiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggbV9kcmF3VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm07CisgICAgYm9vbCBtX2RyYXdUcmFuc2Zvcm1J
c0FuaW1hdGluZzsKKyAgICBib29sIG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZzsK
ICAgICBJbnRSZWN0IG1fZHJhd2FibGVDb250ZW50UmVjdDsKICAgICBmbG9hdCBtX2NvbnRlbnRz
U2NhbGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwCmluZGV4IDJlOTk5
OGE3YTExNGZmNjgxYWQyZGM2NWE0NmZhN2ZmZTU3N2MxNDMuLmZiZWY3YTc2ODJhODEyYzUzMDU0
NWE2MTdjNTJmOTBlMmUwOGE1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVt
LmNwcApAQCAtNDMsNiArNDMsOCBAQCBSZW5kZXJTdXJmYWNlQ2hyb21pdW06OlJlbmRlclN1cmZh
Y2VDaHJvbWl1bShMYXllckNocm9taXVtKiBvd25pbmdMYXllcikKICAgICAsIG1fc2tpcHNEcmF3
KGZhbHNlKQogICAgICwgbV9kcmF3T3BhY2l0eSgxKQogICAgICwgbV9kcmF3T3BhY2l0eUlzQW5p
bWF0aW5nKGZhbHNlKQorICAgICwgbV90YXJnZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGlu
ZyhmYWxzZSkKKyAgICAsIG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGZhbHNl
KQogICAgICwgbV9uZWFyZXN0QW5jZXN0b3JUaGF0TW92ZXNQaXhlbHMoMCkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1
cmZhY2VDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKaW5kZXggM2EzMDRjMTg1ZDdmOTMyNTJmNDQzY2M0
MjM0NjFjOTlhYjk3Y2RkZi4uMDNjYmJkNzY1MjNiYTFkMzY2MWYxOWNmZGU3YjM3MmY2NDMxZDUy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UmVuZGVyU3VyZmFjZUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKQEAgLTc3LDYgKzc3LDExIEBA
IHB1YmxpYzoKICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcmVwbGljYURyYXdUcmFu
c2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3JlcGxpY2FEcmF3VHJhbnNmb3JtOyB9CiAgICAgdm9p
ZCBzZXRSZXBsaWNhRHJhd1RyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcmVw
bGljYURyYXdUcmFuc2Zvcm0pIHsgbV9yZXBsaWNhRHJhd1RyYW5zZm9ybSA9IHJlcGxpY2FEcmF3
VHJhbnNmb3JtOyB9CiAKKyAgICBib29sIHRhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0
aW5nKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGlu
ZzsgfQorICAgIHZvaWQgc2V0VGFyZ2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoYm9v
bCBhbmltYXRpbmcpIHsgbV90YXJnZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyA9IGFu
aW1hdGluZzsgfQorICAgIGJvb2wgc2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmc7IH0KKyAg
ICB2b2lkIHNldFNjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyhib29sIGFuaW1hdGlu
ZykgeyBtX3NjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyA9IGFuaW1hdGluZzsgfQor
CiAgICAgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2NsaXBSZWN0
OyB9CiAgICAgdm9pZCBzZXRDbGlwUmVjdChjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkgeyBtX2Ns
aXBSZWN0ID0gY2xpcFJlY3Q7IH0KIApAQCAtMTA2LDYgKzExMSw4IEBAIHByaXZhdGU6CiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggbV9kcmF3VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IG1fcmVwbGljYURyYXdUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
bV9vcmlnaW5UcmFuc2Zvcm07CisgICAgYm9vbCBtX3RhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJl
QW5pbWF0aW5nOworICAgIGJvb2wgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmc7
CiAgICAgRmlsdGVyT3BlcmF0aW9ucyBtX2ZpbHRlcnM7CiAgICAgSW50UmVjdCBtX2NsaXBSZWN0
OwogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiBtX2xheWVyTGlzdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJJbXBsLmNwcAppbmRleCBhZDM0MGY4ZjFkZDNjNWQxNjMzNmVhOGYyODY0OWUxODBh
NThjZmU1Li4zNGQ2MDA4MDJhZTVmYjEwNDFjMDMyZWUxMjI2MDg4MTJjMTA2ZTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuY3BwCkBAIC02OCw2ICs2OCw4IEBAIENDTGF5ZXJJbXBsOjpDQ0xheWVy
SW1wbChpbnQgaWQpCiAgICAgLCBtX2RyYXdPcGFjaXR5SXNBbmltYXRpbmcoZmFsc2UpCiAgICAg
LCBtX2RlYnVnQm9yZGVyQ29sb3IoMCwgMCwgMCwgMCkKICAgICAsIG1fZGVidWdCb3JkZXJXaWR0
aCgwKQorICAgICwgbV9kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoZmFsc2UpCisgICAgLCBtX3Nj
cmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoZmFsc2UpCiAgICAgLCBtX2xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcihDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlckltcGw6OmNyZWF0ZSh0aGlz
KSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmgKaW5kZXggZTUxYTU5MmVhNzU4MTFhODhkMDU2ZmRlY2ZiMDQwOTVmNWI4NmFjYy4uODE5
NzU4ZjYyMDQzOWNmOWZiNmFjMDllYmI1MDY2MjQ0NzMyNjZhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5oCkBAIC0yMTIsNiArMjEyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERyYXdUcmFuc2Zv
cm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkgeyBtX2RyYXdUcmFuc2Zvcm0g
PSBtYXRyaXg7IH0KICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc2NyZWVuU3BhY2VU
cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3NjcmVlblNwYWNlVHJhbnNmb3JtOyB9CiAgICAg
dm9pZCBzZXRTY3JlZW5TcGFjZVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bWF0cml4KSB7IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm0gPSBtYXRyaXg7IH0KKworICAgIGJvb2wg
ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3VHJhbnNmb3Jt
SXNBbmltYXRpbmc7IH0KKyAgICB2b2lkIHNldERyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyhib29s
IGFuaW1hdGluZykgeyBtX2RyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyA9IGFuaW1hdGluZzsgfQor
ICAgIGJvb2wgc2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZzsgfQorICAgIHZvaWQgc2V0U2NyZWVu
U3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZyhib29sIGFuaW1hdGluZykgeyBtX3NjcmVlblNwYWNl
VHJhbnNmb3JtSXNBbmltYXRpbmcgPSBhbmltYXRpbmc7IH0KKwogICAgIGNvbnN0IEludFJlY3Qm
IGRyYXdhYmxlQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2RyYXdhYmxlQ29udGVudFJl
Y3Q7IH0KICAgICB2b2lkIHNldERyYXdhYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgcmVj
dCkgeyBtX2RyYXdhYmxlQ29udGVudFJlY3QgPSByZWN0OyB9CiAgICAgY29uc3QgRmxvYXRSZWN0
JiB1cGRhdGVSZWN0KCkgY29uc3QgeyByZXR1cm4gbV91cGRhdGVSZWN0OyB9CkBAIC0zMzIsNiAr
MzM4LDggQEAgcHJpdmF0ZToKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fZHJhd1RyYW5z
Zm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3NjcmVlblNwYWNlVHJhbnNmb3JtOwor
ICAgIGJvb2wgbV9kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmc7CisgICAgYm9vbCBtX3NjcmVlblNw
YWNlVHJhbnNmb3JtSXNBbmltYXRpbmc7CiAKICAgICAvLyBUaGUgcmVjdCB0aGF0IGNvbnRyaWJ1
dGVzIHRvIHRoZSBzY2lzc29yIHdoZW4gdGhpcyBsYXllciBpcyBkcmF3bi4KICAgICAvLyBJbmhl
cml0ZWQgYnkgdGhlIHBhcmVudCBsYXllciBhbmQgZnVydGhlciByZXN0cmljdGVkIGlmIHRoaXMg
bGF5ZXIgbWFza3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmlu
ZGV4IGRiNjMxNWM0OTU3NDg4OTFhYjY0MGI5ZTRiZjJlOWE2OTZmMzE4OTkuLjM4Nzk1NTNhNjI2
MjQ5ODk2ZWE3YzRkYjJiOGYxM2VlNzA5MzNlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0Q29tbW9uLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBib29sIGxheWVy
U2hvdWxkQmVTa2lwcGVkKExheWVyVHlwZSogbGF5ZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1zdGF0aWMgYm9vbCBzdWJ0cmVlU2hvdWxkQmVTa2lwcGVkKENDTGF5ZXJJbXBsKiBsYXllcikK
K3N0YXRpYyBpbmxpbmUgYm9vbCBzdWJ0cmVlU2hvdWxkQmVTa2lwcGVkKENDTGF5ZXJJbXBsKiBs
YXllcikKIHsKICAgICAvLyBUaGUgb3BhY2l0eSBvZiBhIGxheWVyIGFsd2F5cyBhcHBsaWVzIHRv
IGl0cyBjaGlsZHJlbiAoZWl0aGVyIGltcGxpY2l0bHkKICAgICAvLyB2aWEgYSByZW5kZXIgc3Vy
ZmFjZSBvciBleHBsaWNpdGx5IGlmIHRoZSBwYXJlbnQgcHJlc2VydmVzIDNEKSwgc28gdGhlCkBA
IC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIGJvb2wgc3VidHJlZVNob3VsZEJlU2tpcHBlZChDQ0xh
eWVySW1wbCogbGF5ZXIpCiAgICAgcmV0dXJuICFsYXllci0+b3BhY2l0eSgpOwogfQogCi1zdGF0
aWMgYm9vbCBzdWJ0cmVlU2hvdWxkQmVTa2lwcGVkKExheWVyQ2hyb21pdW0qIGxheWVyKQorc3Rh
dGljIGlubGluZSBib29sIHN1YnRyZWVTaG91bGRCZVNraXBwZWQoTGF5ZXJDaHJvbWl1bSogbGF5
ZXIpCiB7CiAgICAgLy8gSWYgdGhlIG9wYWNpdHkgaXMgYmVpbmcgYW5pbWF0ZWQgdGhlbiB0aGUg
b3BhY2l0eSBvbiB0aGUgbWFpbiB0aHJlYWQgaXMgdW5yZWxpYWJsZQogICAgIC8vIChzaW5jZSB0
aGUgaW1wbCB0aHJlYWQgbWF5IGJlIHVzaW5nIGEgZGlmZmVyZW50IG9wYWNpdHkpLCBzbyBpdCBz
aG91bGQgbm90IGJlIHRydXN0ZWQuCkBAIC0yODEsNiArMjgxLDEzIEBAIHN0YXRpYyBib29sIGNh
bGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5
ZXIsIExheWVyCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggY29tYmluZWRUcmFuc2Zvcm0gPSBw
YXJlbnRNYXRyaXg7CiAgICAgY29tYmluZWRUcmFuc2Zvcm0gPSBjb21iaW5lZFRyYW5zZm9ybS5t
dWx0aXBseShsYXllckxvY2FsVHJhbnNmb3JtKTsKIAorICAgIGJvb2wgbGF5ZXJJc0luQW5pbWF0
aW5nU3VidHJlZUZvclN1cmZhY2UgPSBsYXllci0+dHJhbnNmb3JtSXNBbmltYXRpbmcoKTsKKyAg
ICBib29sIGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTY3JlZW4gPSBsYXllci0+dHJhbnNm
b3JtSXNBbmltYXRpbmcoKTsKKyAgICBpZiAobGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGxh
eWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNlIHw9IGxheWVyLT5wYXJlbnQoKS0+ZHJh
d1RyYW5zZm9ybUlzQW5pbWF0aW5nKCk7CisgICAgICAgIGxheWVySXNJbkFuaW1hdGluZ1N1YnRy
ZWVGb3JTY3JlZW4gfD0gbGF5ZXItPnBhcmVudCgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5p
bWF0aW5nKCk7CisgICAgfQorCiAgICAgRmxvYXRSZWN0IGxheWVyUmVjdCgtMC41ICogbGF5ZXIt
PmJvdW5kcygpLndpZHRoKCksIC0wLjUgKiBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCksIGxheWVy
LT5ib3VuZHMoKS53aWR0aCgpLCBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCkpOwogICAgIEludFJl
Y3QgdHJhbnNmb3JtZWRMYXllclJlY3Q7CiAKQEAgLTMxNSw2ICszMjIsMTIgQEAgc3RhdGljIGJv
b2wgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBl
KiBsYXllciwgTGF5ZXIKICAgICAgICAgbGF5ZXJPcmlnaW5UcmFuc2Zvcm0udHJhbnNsYXRlM2Qo
LTAuNSAqIGJvdW5kcy53aWR0aCgpLCAtMC41ICogYm91bmRzLmhlaWdodCgpLCAwKTsKICAgICAg
ICAgcmVuZGVyU3VyZmFjZS0+c2V0T3JpZ2luVHJhbnNmb3JtKGxheWVyT3JpZ2luVHJhbnNmb3Jt
KTsKIAorICAgICAgICByZW5kZXJTdXJmYWNlLT5zZXRUYXJnZXRTdXJmYWNlVHJhbnNmb3Jtc0Fy
ZUFuaW1hdGluZyhsYXllcklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU3VyZmFjZSk7CisgICAgICAg
IHJlbmRlclN1cmZhY2UtPnNldFNjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyhsYXll
cklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU2NyZWVuKTsKKyAgICAgICAgbGF5ZXJJc0luQW5pbWF0
aW5nU3VidHJlZUZvclN1cmZhY2UgPSBmYWxzZTsKKyAgICAgICAgbGF5ZXItPnNldERyYXdUcmFu
c2Zvcm1Jc0FuaW1hdGluZyhsYXllcklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU3VyZmFjZSk7Cisg
ICAgICAgIGxheWVyLT5zZXRTY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGxheWVySXNJ
bkFuaW1hdGluZ1N1YnRyZWVGb3JTY3JlZW4pOworCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgYWdn
cmVnYXRlIGhpZXJhcmNoeSBtYXRyaXggdG8gaW5jbHVkZSB0aGUgdHJhbnNmb3JtIG9mIHRoZSBu
ZXdseSBjcmVhdGVkIFJlbmRlclN1cmZhY2UuCiAgICAgICAgIG5leHRIaWVyYXJjaHlNYXRyaXgu
bXVsdGlwbHkobGF5ZXJPcmlnaW5UcmFuc2Zvcm0pOwogCkBAIC0zNDAsNiArMzUzLDggQEAgc3Rh
dGljIGJvb2wgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5
ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAgcmVuZGVyU3VyZmFjZUxheWVyTGlzdC5hcHBl
bmQobGF5ZXIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3Jt
KGNvbWJpbmVkVHJhbnNmb3JtKTsKKyAgICAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm1Jc0Fu
aW1hdGluZyhsYXllcklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU3VyZmFjZSk7CisgICAgICAgIGxh
eWVyLT5zZXRTY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGxheWVySXNJbkFuaW1hdGlu
Z1N1YnRyZWVGb3JTY3JlZW4pOwogICAgICAgICB0cmFuc2Zvcm1lZExheWVyUmVjdCA9IGVuY2xv
c2luZ0ludFJlY3QobGF5ZXItPmRyYXdUcmFuc2Zvcm0oKS5tYXBSZWN0KGxheWVyUmVjdCkpOwog
CiAgICAgICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eShkcmF3T3BhY2l0eSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1
cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZW5kZXJTdXJmYWNlLmNwcAppbmRleCBlMWY1NzA0YmRhM2M2ZWJhYjQwNjE1ZjVhZWEwNWFi
OThlZjcyYzlkLi4zNjNiNWU4MGU5MmYxMjk5OTg4MDBlYzA3NTBiYWNhMTJkYmFkMzU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jl
bmRlclN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5jcHAKQEAgLTUzLDYgKzUzLDggQEAgQ0NSZW5kZXJT
dXJmYWNlOjpDQ1JlbmRlclN1cmZhY2UoQ0NMYXllckltcGwqIG93bmluZ0xheWVyKQogICAgICwg
bV9zdXJmYWNlUHJvcGVydHlDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9kcmF3T3BhY2l0eSgxKQog
ICAgICwgbV9kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKGZhbHNlKQorICAgICwgbV90YXJnZXRTdXJm
YWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyhmYWxzZSkKKyAgICAsIG1fc2NyZWVuU3BhY2VUcmFu
c2Zvcm1zQXJlQW5pbWF0aW5nKGZhbHNlKQogICAgICwgbV9uZWFyZXN0QW5jZXN0b3JUaGF0TW92
ZXNQaXhlbHMoMCkKIHsKICAgICBtX2RhbWFnZVRyYWNrZXIgPSBDQ0RhbWFnZVRyYWNrZXI6OmNy
ZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAppbmRleCA2ODNkMTY2ZDBiNzg0ZDk4
MDk4NDFmZjI2MWM4ZTlhNGYwNTZiZWFmLi42MmYxNDBhMTg4NDYyYjVjNzJiZWI3YjI1ZWYwNTMz
ODdjNTM2M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaApAQCAtODksNiArODksMTEg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZ2luVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBvcmlnaW5UcmFuc2Zvcm0pIHsgbV9vcmlnaW5UcmFuc2Zvcm0gPSBvcmlnaW5U
cmFuc2Zvcm07IH0KICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgb3JpZ2luVHJhbnNm
b3JtKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5UcmFuc2Zvcm07IH0KIAorICAgIGJvb2wgdGFy
Z2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Rhcmdl
dFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nOyB9CisgICAgdm9pZCBzZXRUYXJnZXRTdXJm
YWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyhib29sIGFuaW1hdGluZykgeyBtX3RhcmdldFN1cmZh
Y2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nID0gYW5pbWF0aW5nOyB9CisgICAgYm9vbCBzY3JlZW5T
cGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3NjcmVlblNwYWNl
VHJhbnNmb3Jtc0FyZUFuaW1hdGluZzsgfQorICAgIHZvaWQgc2V0U2NyZWVuU3BhY2VUcmFuc2Zv
cm1zQXJlQW5pbWF0aW5nKGJvb2wgYW5pbWF0aW5nKSB7IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm1z
QXJlQW5pbWF0aW5nID0gYW5pbWF0aW5nOyB9CisKICAgICB2b2lkIHNldENsaXBSZWN0KGNvbnN0
IEludFJlY3QmKTsKICAgICBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2xpcFJlY3Q7IH0KIApAQCAtMTM4LDYgKzE0Myw4IEBAIHByaXZhdGU6CiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggbV9kcmF3VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fcmVwbGljYURyYXdUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9vcmln
aW5UcmFuc2Zvcm07CisgICAgYm9vbCBtX3RhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0
aW5nOworICAgIGJvb2wgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmc7CiAgICAg
RmlsdGVyT3BlcmF0aW9ucyBtX2ZpbHRlcnM7CiAgICAgSW50UmVjdCBtX2NsaXBSZWN0OwogICAg
IFZlY3RvcjxDQ0xheWVySW1wbCo+IG1fbGF5ZXJMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKaW5k
ZXggZTYyMDZjYzU4ZjkwMzNiNWZmY2FhNjllZWI0ZDI5MGYzNTFlZDNmMy4uOTYwZTA2NWFmMjQ1
YjE5MGIyZDFiNDdlZTE0NmVkMDhlZGIwNTg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCkBAIC0y
OSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgiCiAjaW5jbHVk
ZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCisj
aW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiY2MvQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CiAj
aW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KQEAgLTU4Miw2ICs1ODQsMTc4IEBAIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5Q2xpcFJlY3RDdWxsc1JlbmRlclN1cmZhY2VzKQog
ICAgIEVYUEVDVF9FUShjaGlsZC0+aWQoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdFsxXS0+aWQo
KSk7CiB9CiAKK3N0YXRpYyBpbnQgYWRkT3BhY2l0eUFuaW1hdGlvblRvTGF5ZXIoTGF5ZXJDaHJv
bWl1bSogbGF5ZXIsIGZsb2F0IHN0YXJ0VmFsdWUsIGZsb2F0IGVuZFZhbHVlLCBkb3VibGUgZHVy
YXRpb24pCit7CisgICAgc3RhdGljIGludCBpZCA9IDA7CisgICAgV2ViQ29yZTo6S2V5ZnJhbWVW
YWx1ZUxpc3QgdmFsdWVzKEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5KTsKKyAgICB2YWx1ZXMuaW5z
ZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKDAsIHN0YXJ0VmFsdWUpKTsKKyAgICB2YWx1ZXMu
aW5zZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKGR1cmF0aW9uLCBlbmRWYWx1ZSkpOworCisg
ICAgUmVmUHRyPEFuaW1hdGlvbj4gYW5pbWF0aW9uID0gQW5pbWF0aW9uOjpjcmVhdGUoKTsKKyAg
ICBhbmltYXRpb24tPnNldER1cmF0aW9uKGR1cmF0aW9uKTsKKworICAgIEludFNpemUgYm94U2l6
ZTsKKyAgICBsYXllci0+bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCktPmFkZEFuaW1hdGlvbih2
YWx1ZXMsIGJveFNpemUsIGFuaW1hdGlvbi5nZXQoKSwgaWQsIDAsIDApOworICAgIHJldHVybiBp
ZCsrOworfQorCitzdGF0aWMgaW50IGFkZFRyYW5zZm9ybUFuaW1hdGlvblRvTGF5ZXIoTGF5ZXJD
aHJvbWl1bSogbGF5ZXIsIGRvdWJsZSBkdXJhdGlvbikKK3sKKyAgICBzdGF0aWMgaW50IGlkID0g
MDsKKyAgICBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCB2YWx1ZXMoQW5pbWF0ZWRQcm9wZXJ0
eVdlYmtpdFRyYW5zZm9ybSk7CisKKyAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJhdGlvbnMx
OworICAgIG9wZXJhdGlvbnMxLm9wZXJhdGlvbnMoKS5hcHBlbmQoVHJhbnNsYXRlVHJhbnNmb3Jt
T3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3RoKDIsIEZpeGVkKSwgTGVuZ3RoKDAsIEZpeGVkKSwgVHJh
bnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWCkpOworICAgIHZhbHVlcy5pbnNlcnQobmV3IFRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKDAsICZvcGVyYXRpb25zMSkpOworCisgICAgUmVmUHRyPEFu
aW1hdGlvbj4gYW5pbWF0aW9uID0gQW5pbWF0aW9uOjpjcmVhdGUoKTsKKyAgICBhbmltYXRpb24t
PnNldER1cmF0aW9uKGR1cmF0aW9uKTsKKworICAgIEludFNpemUgYm94U2l6ZTsKKyAgICBsYXll
ci0+bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCktPmFkZEFuaW1hdGlvbih2YWx1ZXMsIGJveFNp
emUsIGFuaW1hdGlvbi5nZXQoKSwgaWQsIDAsIDApOworICAgIHJldHVybiBpZCsrOworfQorCitU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUFuaW1hdGlvbnNGb3JSZW5kZXJT
dXJmYWNlSGllcmFyY2h5KQoreworICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBwYXJlbnQgPSBM
YXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gcmVuZGVy
U3VyZmFjZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gcmVuZGVyU3VyZmFjZTIgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQ
dHI8TGF5ZXJDaHJvbWl1bT4gY2hpbGRPZlJvb3QgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsK
KyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gY2hpbGRPZlJTMSA9IExheWVyQ2hyb21pdW06OmNy
ZWF0ZSgpOworICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBjaGlsZE9mUlMyID0gTGF5ZXJDaHJv
bWl1bTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IGdyYW5kQ2hpbGRPZlJv
b3QgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdp
dGhGb3JjZWREcmF3c0NvbnRlbnQ+IGdyYW5kQ2hpbGRPZlJTMSA9IGFkb3B0UmVmKG5ldyBMYXll
ckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJv
bWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+IGdyYW5kQ2hpbGRPZlJTMiA9IGFkb3B0UmVmKG5l
dyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKKyAgICBwYXJlbnQtPmNy
ZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBwYXJlbnQtPmFkZENoaWxkKHJlbmRlclN1cmZhY2Ux
KTsKKyAgICBwYXJlbnQtPmFkZENoaWxkKGNoaWxkT2ZSb290KTsKKyAgICByZW5kZXJTdXJmYWNl
MS0+YWRkQ2hpbGQoY2hpbGRPZlJTMSk7CisgICAgcmVuZGVyU3VyZmFjZTEtPmFkZENoaWxkKHJl
bmRlclN1cmZhY2UyKTsKKyAgICByZW5kZXJTdXJmYWNlMi0+YWRkQ2hpbGQoY2hpbGRPZlJTMik7
CisgICAgY2hpbGRPZlJvb3QtPmFkZENoaWxkKGdyYW5kQ2hpbGRPZlJvb3QpOworICAgIGNoaWxk
T2ZSUzEtPmFkZENoaWxkKGdyYW5kQ2hpbGRPZlJTMSk7CisgICAgY2hpbGRPZlJTMi0+YWRkQ2hp
bGQoZ3JhbmRDaGlsZE9mUlMyKTsKKworICAgIC8vIEluIGNvbWJpbmF0aW9uIHdpdGggZGVzY2Vu
ZGFudERyYXdzQ29udGVudCwgb3BhY2l0eSAhPSAxIGZvcmNlcyB0aGUgbGF5ZXIgdG8gaGF2ZSBh
IG5ldyByZW5kZXJTdXJmYWNlLgorICAgIHJlbmRlclN1cmZhY2UxLT5zZXRPcGFjaXR5KDAuNCk7
CisgICAgcmVuZGVyU3VyZmFjZTItPnNldE9wYWNpdHkoMC41KTsKKyAgICBhZGRPcGFjaXR5QW5p
bWF0aW9uVG9MYXllcihyZW5kZXJTdXJmYWNlMS5nZXQoKSwgMSwgMCwgMTApOworICAgIGFkZE9w
YWNpdHlBbmltYXRpb25Ub0xheWVyKHJlbmRlclN1cmZhY2UyLmdldCgpLCAxLCAwLCAxMCk7CisK
KyAgICAvLyBBbHNvIHB1dCBhbiBhbmltYXRpb24gb24gYSBsYXllciB3aXRob3V0IGRlc2NlbmRh
bnRzLgorICAgIGFkZE9wYWNpdHlBbmltYXRpb25Ub0xheWVyKGdyYW5kQ2hpbGRPZlJvb3QuZ2V0
KCksIDEsIDAsIDEwKTsKKworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVHJhbnNmb3Jt
OworICAgIGxheWVyVHJhbnNmb3JtLnRyYW5zbGF0ZSgxLjAsIDEuMCk7CisgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggc3VibGF5ZXJUcmFuc2Zvcm07CisgICAgc3VibGF5ZXJUcmFuc2Zvcm0uc2Nh
bGUzZCgxMC4wLCAxLjAsIDEuMCk7CisKKyAgICAvLyBQdXQgdHJhbnNmb3JtIGFuaW1hdGlvbnMg
b24gdGhlIHBhcmVudCwgcmVuZGVyU3VyZmFjZTIsIGdyYW5kQ2hpbGRPZlJvb3QsIGFuZCBncmFu
ZENoaWxkT2ZSUzIKKyAgICBhZGRUcmFuc2Zvcm1BbmltYXRpb25Ub0xheWVyKHBhcmVudC5nZXQo
KSwgMTApOworICAgIGFkZFRyYW5zZm9ybUFuaW1hdGlvblRvTGF5ZXIoZ3JhbmRDaGlsZE9mUm9v
dC5nZXQoKSwgMTApOworICAgIGFkZFRyYW5zZm9ybUFuaW1hdGlvblRvTGF5ZXIocmVuZGVyU3Vy
ZmFjZTIuZ2V0KCksIDEwKTsKKyAgICBhZGRUcmFuc2Zvcm1BbmltYXRpb25Ub0xheWVyKGdyYW5k
Q2hpbGRPZlJTMi5nZXQoKSwgMTApOworCisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGlu
ZyhwYXJlbnQuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQ
b2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUoMTAsIDEw
KSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocmVuZGVyU3VyZmFj
ZTEuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgw
LjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUoMTAsIDEwKSwgZmFs
c2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocmVuZGVyU3VyZmFjZTIuZ2V0
KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1Ziwg
MC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOwor
ICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGRPZlJvb3QuZ2V0KCksIGxheWVy
VHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZs
b2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExh
eWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGRPZlJTMS5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0s
IHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgy
LjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0
aWVzRm9yVGVzdGluZyhjaGlsZE9mUlMyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJU
cmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDIuNWYsIDAuMGYp
LCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0
aW5nKGdyYW5kQ2hpbGRPZlJvb3QuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5z
Zm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIElu
dFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rpbmco
Z3JhbmRDaGlsZE9mUlMxLmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0s
IEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDIuNWYsIDAuMGYpLCBJbnRTaXpl
KDEwLCAxMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5k
Q2hpbGRPZlJTMi5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9h
dFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwg
MTApLCBmYWxzZSk7CisKKyAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNp
YmlsaXR5KHBhcmVudC5nZXQoKSk7CisKKyAgICAvLyBPbmx5IGxheWVycyB0aGF0IGFyZSBhc3Nv
Y2lhdGVkIHdpdGggcmVuZGVyIHN1cmZhY2VzIHNob3VsZCBoYXZlIGFuIGFjdHVhbCByZW5kZXJT
dXJmYWNlKCkgdmFsdWUuCisgICAgLy8KKyAgICBBU1NFUlRfVFJVRShwYXJlbnQtPnJlbmRlclN1
cmZhY2UoKSk7CisgICAgQVNTRVJUX0ZBTFNFKGNoaWxkT2ZSb290LT5yZW5kZXJTdXJmYWNlKCkp
OworICAgIEFTU0VSVF9GQUxTRShncmFuZENoaWxkT2ZSb290LT5yZW5kZXJTdXJmYWNlKCkpOwor
CisgICAgQVNTRVJUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKSk7CisgICAg
QVNTRVJUX0ZBTFNFKGNoaWxkT2ZSUzEtPnJlbmRlclN1cmZhY2UoKSk7CisgICAgQVNTRVJUX0ZB
TFNFKGdyYW5kQ2hpbGRPZlJTMS0+cmVuZGVyU3VyZmFjZSgpKTsKKworICAgIEFTU0VSVF9UUlVF
KHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCkpOworICAgIEFTU0VSVF9GQUxTRShjaGls
ZE9mUlMyLT5yZW5kZXJTdXJmYWNlKCkpOworICAgIEFTU0VSVF9GQUxTRShncmFuZENoaWxkT2ZS
UzItPnJlbmRlclN1cmZhY2UoKSk7CisKKyAgICAvLyBWZXJpZnkgYWxsIHRhcmdldFJlbmRlclN1
cmZhY2UgYWNjZXNzb3JzCisgICAgLy8KKyAgICBFWFBFQ1RfRVEocGFyZW50LT5yZW5kZXJTdXJm
YWNlKCksIHBhcmVudC0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKKyAgICBFWFBFQ1RfRVEocGFy
ZW50LT5yZW5kZXJTdXJmYWNlKCksIGNoaWxkT2ZSb290LT50YXJnZXRSZW5kZXJTdXJmYWNlKCkp
OworICAgIEVYUEVDVF9FUShwYXJlbnQtPnJlbmRlclN1cmZhY2UoKSwgZ3JhbmRDaGlsZE9mUm9v
dC0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKKworICAgIEVYUEVDVF9FUShyZW5kZXJTdXJmYWNl
MS0+cmVuZGVyU3VyZmFjZSgpLCByZW5kZXJTdXJmYWNlMS0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgp
KTsKKyAgICBFWFBFQ1RfRVEocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKSwgY2hpbGRP
ZlJTMS0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKKyAgICBFWFBFQ1RfRVEocmVuZGVyU3VyZmFj
ZTEtPnJlbmRlclN1cmZhY2UoKSwgZ3JhbmRDaGlsZE9mUlMxLT50YXJnZXRSZW5kZXJTdXJmYWNl
KCkpOworCisgICAgRVhQRUNUX0VRKHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCksIHJl
bmRlclN1cmZhY2UyLT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworICAgIEVYUEVDVF9FUShyZW5k
ZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLCBjaGlsZE9mUlMyLT50YXJnZXRSZW5kZXJTdXJm
YWNlKCkpOworICAgIEVYUEVDVF9FUShyZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLCBn
cmFuZENoaWxkT2ZSUzItPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7CisKKyAgICAvLyBWZXJpZnkg
ZHJhd09wYWNpdHlJc0FuaW1hdGluZyB2YWx1ZXMKKyAgICAvLworICAgIEVYUEVDVF9GQUxTRShw
YXJlbnQtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNoaWxk
T2ZSb290LT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9UUlVFKGdyYW5k
Q2hpbGRPZlJvb3QtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNF
KHJlbmRlclN1cmZhY2UxLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9U
UlVFKHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdPcGFjaXR5SXNBbmltYXRp
bmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNoaWxkT2ZSUzEtPmRyYXdPcGFjaXR5SXNBbmltYXRp
bmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGdyYW5kQ2hpbGRPZlJTMS0+ZHJhd09wYWNpdHlJc0Fu
aW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFjZTItPmRyYXdPcGFjaXR5
SXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUocmVuZGVyU3VyZmFjZTItPnJlbmRlclN1
cmZhY2UoKS0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY2hp
bGRPZlJTMi0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZ3Jh
bmRDaGlsZE9mUlMyLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworCisgICAgLy8gVmVyaWZ5
IGRyYXdUcmFuc2Zvcm1zQW5pbWF0aW5nSW5UYXJnZXQgdmFsdWVzCisgICAgLy8KKyAgICBFWFBF
Q1RfVFJVRShwYXJlbnQtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1Rf
VFJVRShjaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVD
VF9UUlVFKGdyYW5kQ2hpbGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFjZTEtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygp
KTsKKyAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT50YXJn
ZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY2hp
bGRPZlJTMS0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShn
cmFuZENoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UocmVuZGVyU3VyZmFjZTItPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBF
WFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT50YXJnZXRTdXJmYWNl
VHJhbnNmb3Jtc0FyZUFuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY2hpbGRPZlJTMi0+
ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGRP
ZlJTMi0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOworCisgICAgLy8gVmVyaWZ5IGRyYXdU
cmFuc2Zvcm1zQW5pbWF0aW5nSW5TY3JlZW4gdmFsdWVzCisgICAgLy8KKyAgICBFWFBFQ1RfVFJV
RShwYXJlbnQtPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNU
X1RSVUUoY2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoZ3JhbmRDaGlsZE9mUm9vdC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0Fu
aW1hdGluZygpKTsKKyAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMS0+c2NyZWVuU3BhY2VU
cmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMS0+
cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoY2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGlu
ZygpKTsKKyAgICBFWFBFQ1RfVFJVRShncmFuZENoaWxkT2ZSUzEtPnNjcmVlblNwYWNlVHJhbnNm
b3JtSXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUocmVuZGVyU3VyZmFjZTItPnNjcmVl
blNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUocmVuZGVyU3Vy
ZmFjZTItPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5n
KCkpOworICAgIEVYUEVDVF9UUlVFKGNoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNB
bmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUoZ3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5TcGFj
ZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOworCisKKyAgICAvLyBTYW5pdHkgY2hlY2suIElmIHRo
ZXNlIGZhaWwgdGhlcmUgaXMgcHJvYmFibHkgYSBidWcgaW4gdGhlIHRlc3QgaXRzZWxmLgorICAg
IC8vIEl0IGlzIGV4cGVjdGVkIHRoYXQgd2UgY29ycmVjdGx5IHNldCB1cCB0cmFuc2Zvcm1zIHNv
IHRoYXQgdGhlIHktY29tcG9uZW50IG9mIHRoZSBzY3JlZW4tc3BhY2UgdHJhbnNmb3JtCisgICAg
Ly8gZW5jb2RlcyB0aGUgImRlcHRoIiBvZiB0aGUgbGF5ZXIgaW4gdGhlIHRyZWUuCisgICAgRVhQ
RUNUX0ZMT0FUX0VRKDEuMCwgcGFyZW50LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsK
KyAgICBFWFBFQ1RfRkxPQVRfRVEoMi4wLCBjaGlsZE9mUm9vdC0+c2NyZWVuU3BhY2VUcmFuc2Zv
cm0oKS5tNDIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDMuMCwgZ3JhbmRDaGlsZE9mUm9vdC0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMi4w
LCByZW5kZXJTdXJmYWNlMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7CisgICAgRVhQ
RUNUX0ZMT0FUX0VRKDMuMCwgY2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIo
KSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDQuMCwgZ3JhbmRDaGlsZE9mUlMxLT5zY3JlZW5TcGFj
ZVRyYW5zZm9ybSgpLm00MigpKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgzLjAsIHJlbmRlclN1
cmZhY2UyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRf
RVEoNC4wLCBjaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBF
WFBFQ1RfRkxPQVRfRVEoNS4wLCBncmFuZENoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNmb3Jt
KCkubTQyKCkpOworfQorCiAvLyBGSVhNRToKIC8vIGNvbnRpbnVlIHdvcmtpbmcgb24gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQyCiAvLyAgLSBhZGQgYSB0ZXN0
IHRvIHZlcmlmeSBjbGlwcGluZyB0aGF0IGNoYW5nZXMgdGhlICJjZW50ZXIgcG9pbnQiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132426</attachid>
            <date>2012-03-16 17:38:37 -0700</date>
            <delta_ts>2012-03-18 14:59:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81363-20120316203835.patch</filename>
            <type>text/plain</type>
            <size>27418</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlZGNkMzc3OTAwNjc0
YmNkNzEyNzAxNTA4MmFlMjNkMDc1OTk1MC4uNDUwMGQ0Y2I0YTg1OWU3YmU2ZjJkMTU3YjAyNmFk
NmI4MWIxY2MyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTAzLTE2ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVHJh
bnNmb3JtIGFuaW1hdGlvbiBzdGF0ZSBzaG91bGQgYmUgaW5oZXJpdGVkIGZyb20gcGFyZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzNjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBZHJpZW5uZSBXYWxrZXIuCisKKyAgICAgICAgQWRkcyBhIGRy
YXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpIGFuZCBzY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0
aW5nKCkKKyAgICAgICAgdG8gdGhlIGxheWVyIGNsYXNzZXMsIGFuZCBzaW1pbGFyIHRvIHRoZSBz
dXJmYWNlIGNsYXNzZXMuIFRoZXNlIGluaGVyaXQKKyAgICAgICAgdGhlIHZhbHVlcyBmcm9tIHRo
ZWlyIHBhcmVudHMgaW4gdGhlIHNhbWUgd2F5IHRoYXQgdGhlIHRyYW5zZm9ybXMKKyAgICAgICAg
dGhlbXNlbHZlcyBkbywgYW5kIHJlZmxlY3QgaWYgdGhlIGxheWVyJ3MgdHJhbnNmb3JtIGlzIGJl
aW5nIGFmZmVjdGVkCisgICAgICAgIGJ5IHNvbWUgYWN0aXZlIGFuaW1hdGlvbi4KKworICAgICAg
ICBUaGVzZSBjYW4gYmUgdXNlZCBpbiBtYWluLXRocmVhZCBjdWxsaW5nIHdoZW4gZGV0ZXJtaW5p
bmcgaWYgdGhlIGxheWVyJ3MKKyAgICAgICAgcG9zaXRpb24gaXMgc3RhdGljIGluIHRoZSBnaXZl
biBjb29yZGluYXRlIHNwYWNlIG9yIGJlaW5nIGFuaW1hdGVkLgorCisgICAgICAgIFVuaXQgdGVz
dDogQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC52ZXJpZnlBbmltYXRpb25zRm9yUmVuZGVyU3Vy
ZmFjZUhpZXJhcmNoeQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNo
cm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmg6CisgICAgICAgIChMYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
Q2hyb21pdW06OmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpM
YXllckNocm9taXVtOjpzZXREcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJDaHJvbWl1bTo6c2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRTY3JlZW5TcGFjZVRyYW5zZm9ybUlz
QW5pbWF0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJT
dXJmYWNlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3VyZmFjZUNocm9t
aXVtOjpSZW5kZXJTdXJmYWNlQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3VyZmFjZUNocm9taXVtOjp0YXJnZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdXJmYWNlQ2hyb21pdW06OnNldFRhcmdldFN1cmZh
Y2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN1cmZh
Y2VDaHJvbWl1bTo6c2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclN1cmZhY2VDaHJvbWl1bTo6c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm1z
QXJlQW5pbWF0aW5nKToKKyAgICAgICAgKFJlbmRlclN1cmZhY2VDaHJvbWl1bSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OkNDTGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oOgorICAgICAgICAoQ0NMYXllcklt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OmRyYXdUcmFuc2Zvcm1Jc0FuaW1h
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2V0RHJhd1RyYW5zZm9ybUlz
QW5pbWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzY3JlZW5TcGFjZVRy
YW5zZm9ybUlzQW5pbWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRT
Y3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3VidHJlZVNob3VsZEJlU2tpcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxh
dGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDUmVuZGVyU3VyZmFjZTo6Q0NSZW5kZXJTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDUmVuZGVyU3VyZmFjZTo6dGFyZ2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJTdXJmYWNlOjpzZXRUYXJnZXRTdXJmYWNl
VHJhbnNmb3Jtc0FyZUFuaW1hdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclN1cmZh
Y2U6OnNjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1JlbmRlclN1cmZhY2U6OnNldFNjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyk6
CisgICAgICAgIChDQ1JlbmRlclN1cmZhY2UpOgorCiAyMDEyLTAzLTE2ICBFbWlsIEEgRWtsdW5k
ICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggcm91bmRpbmcgYW5kIHVzYWdlIG9m
IExheW91dFVuaXRzIGluIFJlbmRlckJveE1vZGVsT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDU2MDZmYjA5YTlmNDk5Njg3N2M1YWZlNmUxZTFkY2M2NTljZjNkNzcuLmQzOTZi
Nzc4ZDE5Zjk3MGMzYzZhNjRhN2Q1ZWY0YzI4ODA2NjQ3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMTYgIERhbmEgSmFuc2VucyAgPGRhbmFr
akBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBUcmFuc2Zvcm0gYW5pbWF0aW9u
IHN0YXRlIHNob3VsZCBiZSBpbmhlcml0ZWQgZnJvbSBwYXJlbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTM2MworCisgICAgICAgIFJldmlld2Vk
IGJ5IEFkcmllbm5lIFdhbGtlci4KKworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkT3BhY2l0eUFuaW1hdGlvblRvTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjphZGRUcmFuc2Zvcm1B
bmltYXRpb25Ub0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEyLTAzLTE1
ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gUmVmYWN0b3IgQ2xpcGJvYXJkQ2hyb21pdW0gYW5kIERhdGFUcmFuc2Zlckl0ZW1MaXN0L0Rh
dGFUcmFuc2Zlckl0ZW0gdG8gc3VwcG9ydCBIVE1MIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAK
aW5kZXggZDRjYWQyNGE2MTNiNmE3OTU0OTM5ZDE0NTU5YjdlZmZiMWZjNjA4OS4uODFkMzk0NGZi
NmQ2MTNiMjBmMjE5ZDAwYTNkOGY1NjBmOTQ3YWUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAK
QEAgLTgyLDYgKzgyLDggQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bSgpCiAgICAgLCBt
X2RyYXdPcGFjaXR5KDApCiAgICAgLCBtX2RyYXdPcGFjaXR5SXNBbmltYXRpbmcoZmFsc2UpCiAg
ICAgLCBtX3RhcmdldFJlbmRlclN1cmZhY2UoMCkKKyAgICAsIG1fZHJhd1RyYW5zZm9ybUlzQW5p
bWF0aW5nKGZhbHNlKQorICAgICwgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGZh
bHNlKQogICAgICwgbV9jb250ZW50c1NjYWxlKDEuMCkKICAgICAsIG1fbGF5ZXJBbmltYXRpb25E
ZWxlZ2F0ZSgwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDAwODE1MGNhYmI4YzgxZTM1ZmRj
ZWVjZmYwNzU0ZDE2ZTE5N2I1NTcuLjUxMzRmZDUxZjMwZmQyZDNmMDM5M2FlNWE5M2Y0NTBlN2Zk
MTA0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTE5Nyw2ICsxOTcsMTIgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0Q2xpcFJlY3QoY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIHsgbV9jbGlwUmVj
dCA9IGNsaXBSZWN0OyB9CiAgICAgUmVuZGVyU3VyZmFjZUNocm9taXVtKiB0YXJnZXRSZW5kZXJT
dXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRSZW5kZXJTdXJmYWNlOyB9CiAgICAgdm9p
ZCBzZXRUYXJnZXRSZW5kZXJTdXJmYWNlKFJlbmRlclN1cmZhY2VDaHJvbWl1bSogc3VyZmFjZSkg
eyBtX3RhcmdldFJlbmRlclN1cmZhY2UgPSBzdXJmYWNlOyB9CisKKyAgICBib29sIGRyYXdUcmFu
c2Zvcm1Jc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd1RyYW5zZm9ybUlzQW5pbWF0
aW5nOyB9CisgICAgdm9pZCBzZXREcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoYm9vbCBhbmltYXRp
bmcpIHsgbV9kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcgPSBhbmltYXRpbmc7IH0KKyAgICBib29s
IHNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3NjcmVl
blNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmc7IH0KKyAgICB2b2lkIHNldFNjcmVlblNwYWNlVHJh
bnNmb3JtSXNBbmltYXRpbmcoYm9vbCBhbmltYXRpbmcpIHsgbV9zY3JlZW5TcGFjZVRyYW5zZm9y
bUlzQW5pbWF0aW5nID0gYW5pbWF0aW5nOyB9CisKICAgICAvLyBUaGlzIG1vdmVzIGZyb20gbGF5
ZXIgc3BhY2UsIHdpdGggb3JpZ2luIGluIHRoZSBjZW50ZXIgdG8gdGFyZ2V0IHNwYWNlIHdpdGgg
b3JpZ2luIGluIHRoZSB0b3AgbGVmdAogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBk
cmF3VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3VHJhbnNmb3JtOyB9CiAgICAgdm9p
ZCBzZXREcmF3VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpIHsg
bV9kcmF3VHJhbnNmb3JtID0gbWF0cml4OyB9CkBAIC0zMjQsNiArMzMwLDggQEAgcHJpdmF0ZToK
ICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZTsKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2RyYXdUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbV9zY3JlZW5TcGFjZVRyYW5zZm9ybTsKKyAgICBib29sIG1fZHJhd1RyYW5zZm9ybUlz
QW5pbWF0aW5nOworICAgIGJvb2wgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nOwog
ICAgIEludFJlY3QgbV9kcmF3YWJsZUNvbnRlbnRSZWN0OwogICAgIGZsb2F0IG1fY29udGVudHNT
Y2FsZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAKaW5kZXggMmU5OTk4
YTdhMTE0ZmY2ODFhZDJkYzY1YTQ2ZmE3ZmZlNTc3YzE0My4uZmJlZjdhNzY4MmE4MTJjNTMwNTQ1
YTYxN2M1MmY5MGUyZTA4YTU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0u
Y3BwCkBAIC00Myw2ICs0Myw4IEBAIFJlbmRlclN1cmZhY2VDaHJvbWl1bTo6UmVuZGVyU3VyZmFj
ZUNocm9taXVtKExheWVyQ2hyb21pdW0qIG93bmluZ0xheWVyKQogICAgICwgbV9za2lwc0RyYXco
ZmFsc2UpCiAgICAgLCBtX2RyYXdPcGFjaXR5KDEpCiAgICAgLCBtX2RyYXdPcGFjaXR5SXNBbmlt
YXRpbmcoZmFsc2UpCisgICAgLCBtX3RhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5n
KGZhbHNlKQorICAgICwgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoZmFsc2Up
CiAgICAgLCBtX25lYXJlc3RBbmNlc3RvclRoYXRNb3Zlc1BpeGVscygwKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3Vy
ZmFjZUNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uaAppbmRleCAzYTMwNGMxODVkN2Y5MzI1MmY0NDNjYzQy
MzQ2MWM5OWFiOTdjZGRmLi4wM2NiYmQ3NjUyM2JhMWQzNjYxZjE5Y2ZkZTdiMzcyZjY0MzFkNTI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9S
ZW5kZXJTdXJmYWNlQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uaApAQCAtNzcsNiArNzcsMTEgQEAg
cHVibGljOgogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiByZXBsaWNhRHJhd1RyYW5z
Zm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGljYURyYXdUcmFuc2Zvcm07IH0KICAgICB2b2lk
IHNldFJlcGxpY2FEcmF3VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiByZXBs
aWNhRHJhd1RyYW5zZm9ybSkgeyBtX3JlcGxpY2FEcmF3VHJhbnNmb3JtID0gcmVwbGljYURyYXdU
cmFuc2Zvcm07IH0KIAorICAgIGJvb2wgdGFyZ2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRp
bmcoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5n
OyB9CisgICAgdm9pZCBzZXRUYXJnZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZyhib29s
IGFuaW1hdGluZykgeyBtX3RhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nID0gYW5p
bWF0aW5nOyB9CisgICAgYm9vbCBzY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoKSBj
b25zdCB7IHJldHVybiBtX3NjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZzsgfQorICAg
IHZvaWQgc2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGJvb2wgYW5pbWF0aW5n
KSB7IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nID0gYW5pbWF0aW5nOyB9CisK
ICAgICBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcFJlY3Q7
IH0KICAgICB2b2lkIHNldENsaXBSZWN0KGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSB7IG1fY2xp
cFJlY3QgPSBjbGlwUmVjdDsgfQogCkBAIC0xMDYsNiArMTExLDggQEAgcHJpdmF0ZToKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2RyYXdUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbV9yZXBsaWNhRHJhd1RyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBt
X29yaWdpblRyYW5zZm9ybTsKKyAgICBib29sIG1fdGFyZ2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVB
bmltYXRpbmc7CisgICAgYm9vbCBtX3NjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZzsK
ICAgICBGaWx0ZXJPcGVyYXRpb25zIG1fZmlsdGVyczsKICAgICBJbnRSZWN0IG1fY2xpcFJlY3Q7
CiAgICAgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+IG1fbGF5ZXJMaXN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuY3BwCmluZGV4IGFkMzQwZjhmMWRkM2M1ZDE2MzM2ZWE4ZjI4NjQ5ZTE4MGE1
OGNmZTUuLjM0ZDYwMDgwMmFlNWZiMTA0MWMwMzJlZTEyMjYwODgxMmMxMDZlNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5jcHAKQEAgLTY4LDYgKzY4LDggQEAgQ0NMYXllckltcGw6OkNDTGF5ZXJJ
bXBsKGludCBpZCkKICAgICAsIG1fZHJhd09wYWNpdHlJc0FuaW1hdGluZyhmYWxzZSkKICAgICAs
IG1fZGVidWdCb3JkZXJDb2xvcigwLCAwLCAwLCAwKQogICAgICwgbV9kZWJ1Z0JvcmRlcldpZHRo
KDApCisgICAgLCBtX2RyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyhmYWxzZSkKKyAgICAsIG1fc2Ny
ZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZyhmYWxzZSkKICAgICAsIG1fbGF5ZXJBbmltYXRp
b25Db250cm9sbGVyKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVySW1wbDo6Y3JlYXRlKHRoaXMp
KQogewogICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllcklt
cGwuaAppbmRleCBlNTFhNTkyZWE3NTgxMWE4OGQwNTZmZGVjZmIwNDA5NWY1Yjg2YWNjLi44MTk3
NThmNjIwNDM5Y2Y5ZmI2YWMwOWViYjUwNjYyNDQ3MzI2NmExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBs
LmgKQEAgLTIxMiw2ICsyMTIsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9y
bShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4KSB7IG1fZHJhd1RyYW5zZm9ybSA9
IG1hdHJpeDsgfQogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBzY3JlZW5TcGFjZVRy
YW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm07IH0KICAgICB2
b2lkIHNldFNjcmVlblNwYWNlVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBt
YXRyaXgpIHsgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybSA9IG1hdHJpeDsgfQorCisgICAgYm9vbCBk
cmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2RyYXdUcmFuc2Zvcm1J
c0FuaW1hdGluZzsgfQorICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKGJvb2wg
YW5pbWF0aW5nKSB7IG1fZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nID0gYW5pbWF0aW5nOyB9Cisg
ICAgYm9vbCBzY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nOyB9CisgICAgdm9pZCBzZXRTY3JlZW5T
cGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGJvb2wgYW5pbWF0aW5nKSB7IG1fc2NyZWVuU3BhY2VU
cmFuc2Zvcm1Jc0FuaW1hdGluZyA9IGFuaW1hdGluZzsgfQorCiAgICAgY29uc3QgSW50UmVjdCYg
ZHJhd2FibGVDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd2FibGVDb250ZW50UmVj
dDsgfQogICAgIHZvaWQgc2V0RHJhd2FibGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0
KSB7IG1fZHJhd2FibGVDb250ZW50UmVjdCA9IHJlY3Q7IH0KICAgICBjb25zdCBGbG9hdFJlY3Qm
IHVwZGF0ZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVJlY3Q7IH0KQEAgLTMzMiw2ICsz
MzgsOCBAQCBwcml2YXRlOgogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9kcmF3VHJhbnNm
b3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm07Cisg
ICAgYm9vbCBtX2RyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZzsKKyAgICBib29sIG1fc2NyZWVuU3Bh
Y2VUcmFuc2Zvcm1Jc0FuaW1hdGluZzsKIAogICAgIC8vIFRoZSByZWN0IHRoYXQgY29udHJpYnV0
ZXMgdG8gdGhlIHNjaXNzb3Igd2hlbiB0aGlzIGxheWVyIGlzIGRyYXduLgogICAgIC8vIEluaGVy
aXRlZCBieSB0aGUgcGFyZW50IGxheWVyIGFuZCBmdXJ0aGVyIHJlc3RyaWN0ZWQgaWYgdGhpcyBs
YXllciBtYXNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKaW5k
ZXggZGI2MzE1YzQ5NTc0ODg5MWFiNjQwYjllNGJmMmU5YTY5NmYzMTg5OS4uMzg3OTU1M2E2MjYy
NDk4OTZlYTdjNGRiMmI4ZjEzZWU3MDkzM2VkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDb21tb24uY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGljIGJvb2wgbGF5ZXJT
aG91bGRCZVNraXBwZWQoTGF5ZXJUeXBlKiBsYXllcikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXN0YXRpYyBib29sIHN1YnRyZWVTaG91bGRCZVNraXBwZWQoQ0NMYXllckltcGwqIGxheWVyKQor
c3RhdGljIGlubGluZSBib29sIHN1YnRyZWVTaG91bGRCZVNraXBwZWQoQ0NMYXllckltcGwqIGxh
eWVyKQogewogICAgIC8vIFRoZSBvcGFjaXR5IG9mIGEgbGF5ZXIgYWx3YXlzIGFwcGxpZXMgdG8g
aXRzIGNoaWxkcmVuIChlaXRoZXIgaW1wbGljaXRseQogICAgIC8vIHZpYSBhIHJlbmRlciBzdXJm
YWNlIG9yIGV4cGxpY2l0bHkgaWYgdGhlIHBhcmVudCBwcmVzZXJ2ZXMgM0QpLCBzbyB0aGUKQEAg
LTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgYm9vbCBzdWJ0cmVlU2hvdWxkQmVTa2lwcGVkKENDTGF5
ZXJJbXBsKiBsYXllcikKICAgICByZXR1cm4gIWxheWVyLT5vcGFjaXR5KCk7CiB9CiAKLXN0YXRp
YyBib29sIHN1YnRyZWVTaG91bGRCZVNraXBwZWQoTGF5ZXJDaHJvbWl1bSogbGF5ZXIpCitzdGF0
aWMgaW5saW5lIGJvb2wgc3VidHJlZVNob3VsZEJlU2tpcHBlZChMYXllckNocm9taXVtKiBsYXll
cikKIHsKICAgICAvLyBJZiB0aGUgb3BhY2l0eSBpcyBiZWluZyBhbmltYXRlZCB0aGVuIHRoZSBv
cGFjaXR5IG9uIHRoZSBtYWluIHRocmVhZCBpcyB1bnJlbGlhYmxlCiAgICAgLy8gKHNpbmNlIHRo
ZSBpbXBsIHRocmVhZCBtYXkgYmUgdXNpbmcgYSBkaWZmZXJlbnQgb3BhY2l0eSksIHNvIGl0IHNo
b3VsZCBub3QgYmUgdHJ1c3RlZC4KQEAgLTI4MSw2ICsyODEsMTMgQEAgc3RhdGljIGJvb2wgY2Fs
Y3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXll
ciwgTGF5ZXIKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjb21iaW5lZFRyYW5zZm9ybSA9IHBh
cmVudE1hdHJpeDsKICAgICBjb21iaW5lZFRyYW5zZm9ybSA9IGNvbWJpbmVkVHJhbnNmb3JtLm11
bHRpcGx5KGxheWVyTG9jYWxUcmFuc2Zvcm0pOwogCisgICAgYm9vbCBsYXllcklzSW5BbmltYXRp
bmdTdWJ0cmVlRm9yU3VyZmFjZSA9IGxheWVyLT50cmFuc2Zvcm1Jc0FuaW1hdGluZygpOworICAg
IGJvb2wgbGF5ZXJJc0luQW5pbWF0aW5nU3VidHJlZUZvclNjcmVlbiA9IGxheWVyLT50cmFuc2Zv
cm1Jc0FuaW1hdGluZygpOworICAgIGlmIChsYXllci0+cGFyZW50KCkpIHsKKyAgICAgICAgbGF5
ZXJJc0luQW5pbWF0aW5nU3VidHJlZUZvclN1cmZhY2UgfD0gbGF5ZXItPnBhcmVudCgpLT5kcmF3
VHJhbnNmb3JtSXNBbmltYXRpbmcoKTsKKyAgICAgICAgbGF5ZXJJc0luQW5pbWF0aW5nU3VidHJl
ZUZvclNjcmVlbiB8PSBsYXllci0+cGFyZW50KCktPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmlt
YXRpbmcoKTsKKyAgICB9CisKICAgICBGbG9hdFJlY3QgbGF5ZXJSZWN0KC0wLjUgKiBsYXllci0+
Ym91bmRzKCkud2lkdGgoKSwgLTAuNSAqIGxheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSwgbGF5ZXIt
PmJvdW5kcygpLndpZHRoKCksIGxheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSk7CiAgICAgSW50UmVj
dCB0cmFuc2Zvcm1lZExheWVyUmVjdDsKIApAQCAtMzE1LDYgKzMyMiwxMiBAQCBzdGF0aWMgYm9v
bCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUq
IGxheWVyLCBMYXllcgogICAgICAgICBsYXllck9yaWdpblRyYW5zZm9ybS50cmFuc2xhdGUzZCgt
MC41ICogYm91bmRzLndpZHRoKCksIC0wLjUgKiBib3VuZHMuaGVpZ2h0KCksIDApOwogICAgICAg
ICByZW5kZXJTdXJmYWNlLT5zZXRPcmlnaW5UcmFuc2Zvcm0obGF5ZXJPcmlnaW5UcmFuc2Zvcm0p
OwogCisgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFRhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJl
QW5pbWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNlKTsKKyAgICAgICAg
cmVuZGVyU3VyZmFjZS0+c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGxheWVy
SXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTY3JlZW4pOworICAgICAgICBsYXllcklzSW5BbmltYXRp
bmdTdWJ0cmVlRm9yU3VyZmFjZSA9IGZhbHNlOworICAgICAgICBsYXllci0+c2V0RHJhd1RyYW5z
Zm9ybUlzQW5pbWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNlKTsKKyAg
ICAgICAgbGF5ZXItPnNldFNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcobGF5ZXJJc0lu
QW5pbWF0aW5nU3VidHJlZUZvclNjcmVlbik7CisKICAgICAgICAgLy8gVXBkYXRlIHRoZSBhZ2dy
ZWdhdGUgaGllcmFyY2h5IG1hdHJpeCB0byBpbmNsdWRlIHRoZSB0cmFuc2Zvcm0gb2YgdGhlIG5l
d2x5IGNyZWF0ZWQgUmVuZGVyU3VyZmFjZS4KICAgICAgICAgbmV4dEhpZXJhcmNoeU1hdHJpeC5t
dWx0aXBseShsYXllck9yaWdpblRyYW5zZm9ybSk7CiAKQEAgLTM0MCw2ICszNTMsOCBAQCBzdGF0
aWMgYm9vbCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXll
clR5cGUqIGxheWVyLCBMYXllcgogICAgICAgICByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LmFwcGVu
ZChsYXllcik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm0o
Y29tYmluZWRUcmFuc2Zvcm0pOworICAgICAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybUlzQW5p
bWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNlKTsKKyAgICAgICAgbGF5
ZXItPnNldFNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcobGF5ZXJJc0luQW5pbWF0aW5n
U3VidHJlZUZvclNjcmVlbik7CiAgICAgICAgIHRyYW5zZm9ybWVkTGF5ZXJSZWN0ID0gZW5jbG9z
aW5nSW50UmVjdChsYXllci0+ZHJhd1RyYW5zZm9ybSgpLm1hcFJlY3QobGF5ZXJSZWN0KSk7CiAK
ICAgICAgICAgbGF5ZXItPnNldERyYXdPcGFjaXR5KGRyYXdPcGFjaXR5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3Vy
ZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1JlbmRlclN1cmZhY2UuY3BwCmluZGV4IGUxZjU3MDRiZGEzYzZlYmFiNDA2MTVmNWFlYTA1YWI5
OGVmNzJjOWQuLjM2M2I1ZTgwZTkyZjEyOTk5ODgwMGVjMDc1MGJhY2ExMmRiYWQzNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVu
ZGVyU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcApAQCAtNTMsNiArNTMsOCBAQCBDQ1JlbmRlclN1
cmZhY2U6OkNDUmVuZGVyU3VyZmFjZShDQ0xheWVySW1wbCogb3duaW5nTGF5ZXIpCiAgICAgLCBt
X3N1cmZhY2VQcm9wZXJ0eUNoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2RyYXdPcGFjaXR5KDEpCiAg
ICAgLCBtX2RyYXdPcGFjaXR5SXNBbmltYXRpbmcoZmFsc2UpCisgICAgLCBtX3RhcmdldFN1cmZh
Y2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGZhbHNlKQorICAgICwgbV9zY3JlZW5TcGFjZVRyYW5z
Zm9ybXNBcmVBbmltYXRpbmcoZmFsc2UpCiAgICAgLCBtX25lYXJlc3RBbmNlc3RvclRoYXRNb3Zl
c1BpeGVscygwKQogewogICAgIG1fZGFtYWdlVHJhY2tlciA9IENDRGFtYWdlVHJhY2tlcjo6Y3Jl
YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oCmluZGV4IDY4M2QxNjZkMGI3ODRkOTgw
OTg0MWZmMjYxYzhlOWE0ZjA1NmJlYWYuLjYyZjE0MGExODg0NjJiNWM3MmJlYjdiMjVlZjA1MzM4
N2M1MzYzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oCkBAIC04OSw2ICs4OSwxMSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmlnaW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIG9yaWdpblRyYW5zZm9ybSkgeyBtX29yaWdpblRyYW5zZm9ybSA9IG9yaWdpblRy
YW5zZm9ybTsgfQogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBvcmlnaW5UcmFuc2Zv
cm0oKSBjb25zdCB7IHJldHVybiBtX29yaWdpblRyYW5zZm9ybTsgfQogCisgICAgYm9vbCB0YXJn
ZXRTdXJmYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0
U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmc7IH0KKyAgICB2b2lkIHNldFRhcmdldFN1cmZh
Y2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGJvb2wgYW5pbWF0aW5nKSB7IG1fdGFyZ2V0U3VyZmFj
ZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcgPSBhbmltYXRpbmc7IH0KKyAgICBib29sIHNjcmVlblNw
YWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuU3BhY2VU
cmFuc2Zvcm1zQXJlQW5pbWF0aW5nOyB9CisgICAgdm9pZCBzZXRTY3JlZW5TcGFjZVRyYW5zZm9y
bXNBcmVBbmltYXRpbmcoYm9vbCBhbmltYXRpbmcpIHsgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybXNB
cmVBbmltYXRpbmcgPSBhbmltYXRpbmc7IH0KKwogICAgIHZvaWQgc2V0Q2xpcFJlY3QoY29uc3Qg
SW50UmVjdCYpOwogICAgIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9jbGlwUmVjdDsgfQogCkBAIC0xMzgsNiArMTQzLDggQEAgcHJpdmF0ZToKICAgICBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBtX2RyYXdUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
bV9yZXBsaWNhRHJhd1RyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX29yaWdp
blRyYW5zZm9ybTsKKyAgICBib29sIG1fdGFyZ2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRp
bmc7CisgICAgYm9vbCBtX3NjcmVlblNwYWNlVHJhbnNmb3Jtc0FyZUFuaW1hdGluZzsKICAgICBG
aWx0ZXJPcGVyYXRpb25zIG1fZmlsdGVyczsKICAgICBJbnRSZWN0IG1fY2xpcFJlY3Q7CiAgICAg
VmVjdG9yPENDTGF5ZXJJbXBsKj4gbV9sYXllckxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAppbmRl
eCBlNjIwNmNjNThmOTAzM2I1ZmZjYWE2OWVlYjRkMjkwZjM1MWVkM2YzLi43MjJiMWMwNTZhZTlj
NDgyMTZmZjk2MjlhZDZjNzZhNzNmYWJkZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKQEAgLTI5
LDYgKzI5LDggQEAKICNpbmNsdWRlICJDQ0xheWVyVHJlZVRlc3RDb21tb24uaCIKICNpbmNsdWRl
ICJMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNp
bmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJjYy9DQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlci5oIgogCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KICNp
bmNsdWRlIDxndGVzdC9ndGVzdC5oPgpAQCAtNTgyLDYgKzU4NCwxNzggQEAgVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlDbGlwUmVjdEN1bGxzUmVuZGVyU3VyZmFjZXMpCiAg
ICAgRVhQRUNUX0VRKGNoaWxkLT5pZCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0WzFdLT5pZCgp
KTsKIH0KIAorc3RhdGljIGludCBhZGRPcGFjaXR5QW5pbWF0aW9uVG9MYXllcihMYXllckNocm9t
aXVtKiBsYXllciwgZmxvYXQgc3RhcnRWYWx1ZSwgZmxvYXQgZW5kVmFsdWUsIGRvdWJsZSBkdXJh
dGlvbikKK3sKKyAgICBzdGF0aWMgaW50IGlkID0gMDsKKyAgICBXZWJDb3JlOjpLZXlmcmFtZVZh
bHVlTGlzdCB2YWx1ZXMoQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpOworICAgIHZhbHVlcy5pbnNl
cnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoMCwgc3RhcnRWYWx1ZSkpOworICAgIHZhbHVlcy5p
bnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoZHVyYXRpb24sIGVuZFZhbHVlKSk7CisKKyAg
ICBSZWZQdHI8QW5pbWF0aW9uPiBhbmltYXRpb24gPSBBbmltYXRpb246OmNyZWF0ZSgpOworICAg
IGFuaW1hdGlvbi0+c2V0RHVyYXRpb24oZHVyYXRpb24pOworCisgICAgSW50U2l6ZSBib3hTaXpl
OworICAgIGxheWVyLT5sYXllckFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkQW5pbWF0aW9uKHZh
bHVlcywgYm94U2l6ZSwgYW5pbWF0aW9uLmdldCgpLCBpZCwgMCwgMCk7CisgICAgcmV0dXJuIGlk
Kys7Cit9CisKK3N0YXRpYyBpbnQgYWRkVHJhbnNmb3JtQW5pbWF0aW9uVG9MYXllcihMYXllckNo
cm9taXVtKiBsYXllciwgZG91YmxlIGR1cmF0aW9uKQoreworICAgIHN0YXRpYyBpbnQgaWQgPSAw
OworICAgIFdlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0IHZhbHVlcyhBbmltYXRlZFByb3BlcnR5
V2Via2l0VHJhbnNmb3JtKTsKKworICAgIFRyYW5zZm9ybU9wZXJhdGlvbnMgb3BlcmF0aW9uczE7
CisgICAgb3BlcmF0aW9uczEub3BlcmF0aW9ucygpLmFwcGVuZChUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb246OmNyZWF0ZShMZW5ndGgoMiwgRml4ZWQpLCBMZW5ndGgoMCwgRml4ZWQpLCBUcmFu
c2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9YKSk7CisgICAgdmFsdWVzLmluc2VydChuZXcgVHJh
bnNmb3JtQW5pbWF0aW9uVmFsdWUoMCwgJm9wZXJhdGlvbnMxKSk7CisKKyAgICBSZWZQdHI8QW5p
bWF0aW9uPiBhbmltYXRpb24gPSBBbmltYXRpb246OmNyZWF0ZSgpOworICAgIGFuaW1hdGlvbi0+
c2V0RHVyYXRpb24oZHVyYXRpb24pOworCisgICAgSW50U2l6ZSBib3hTaXplOworICAgIGxheWVy
LT5sYXllckFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkQW5pbWF0aW9uKHZhbHVlcywgYm94U2l6
ZSwgYW5pbWF0aW9uLmdldCgpLCBpZCwgMCwgMCk7CisgICAgcmV0dXJuIGlkKys7Cit9CisKK1RF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5QW5pbWF0aW9uc0ZvclJlbmRlclN1
cmZhY2VIaWVyYXJjaHkpCit7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IHBhcmVudCA9IExh
eWVyQ2hyb21pdW06OmNyZWF0ZSgpOworICAgIFJlZlB0cjxMYXllckNocm9taXVtPiByZW5kZXJT
dXJmYWNlMSA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOworICAgIFJlZlB0cjxMYXllckNocm9t
aXVtPiByZW5kZXJTdXJmYWNlMiA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOworICAgIFJlZlB0
cjxMYXllckNocm9taXVtPiBjaGlsZE9mUm9vdCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwor
ICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBjaGlsZE9mUlMxID0gTGF5ZXJDaHJvbWl1bTo6Y3Jl
YXRlKCk7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IGNoaWxkT2ZSUzIgPSBMYXllckNocm9t
aXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gZ3JhbmRDaGlsZE9mUm9v
dCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOworICAgIFJlZlB0cjxMYXllckNocm9taXVtV2l0
aEZvcmNlZERyYXdzQ29udGVudD4gZ3JhbmRDaGlsZE9mUlMxID0gYWRvcHRSZWYobmV3IExheWVy
Q2hyb21pdW1XaXRoRm9yY2VkRHJhd3NDb250ZW50KCkpOworICAgIFJlZlB0cjxMYXllckNocm9t
aXVtV2l0aEZvcmNlZERyYXdzQ29udGVudD4gZ3JhbmRDaGlsZE9mUlMyID0gYWRvcHRSZWYobmV3
IExheWVyQ2hyb21pdW1XaXRoRm9yY2VkRHJhd3NDb250ZW50KCkpOworICAgIHBhcmVudC0+Y3Jl
YXRlUmVuZGVyU3VyZmFjZSgpOworICAgIHBhcmVudC0+YWRkQ2hpbGQocmVuZGVyU3VyZmFjZTEp
OworICAgIHBhcmVudC0+YWRkQ2hpbGQoY2hpbGRPZlJvb3QpOworICAgIHJlbmRlclN1cmZhY2Ux
LT5hZGRDaGlsZChjaGlsZE9mUlMxKTsKKyAgICByZW5kZXJTdXJmYWNlMS0+YWRkQ2hpbGQocmVu
ZGVyU3VyZmFjZTIpOworICAgIHJlbmRlclN1cmZhY2UyLT5hZGRDaGlsZChjaGlsZE9mUlMyKTsK
KyAgICBjaGlsZE9mUm9vdC0+YWRkQ2hpbGQoZ3JhbmRDaGlsZE9mUm9vdCk7CisgICAgY2hpbGRP
ZlJTMS0+YWRkQ2hpbGQoZ3JhbmRDaGlsZE9mUlMxKTsKKyAgICBjaGlsZE9mUlMyLT5hZGRDaGls
ZChncmFuZENoaWxkT2ZSUzIpOworCisgICAgLy8gSW4gY29tYmluYXRpb24gd2l0aCBkZXNjZW5k
YW50RHJhd3NDb250ZW50LCBvcGFjaXR5ICE9IDEgZm9yY2VzIHRoZSBsYXllciB0byBoYXZlIGEg
bmV3IHJlbmRlclN1cmZhY2UuCisgICAgcmVuZGVyU3VyZmFjZTEtPnNldE9wYWNpdHkoMC40KTsK
KyAgICByZW5kZXJTdXJmYWNlMi0+c2V0T3BhY2l0eSgwLjUpOworICAgIGFkZE9wYWNpdHlBbmlt
YXRpb25Ub0xheWVyKHJlbmRlclN1cmZhY2UxLmdldCgpLCAxLCAwLCAxMCk7CisgICAgYWRkT3Bh
Y2l0eUFuaW1hdGlvblRvTGF5ZXIocmVuZGVyU3VyZmFjZTIuZ2V0KCksIDEsIDAsIDEwKTsKKwor
ICAgIC8vIEFsc28gcHV0IGFuIGFuaW1hdGlvbiBvbiBhIGxheWVyIHdpdGhvdXQgZGVzY2VuZGFu
dHMuCisgICAgYWRkT3BhY2l0eUFuaW1hdGlvblRvTGF5ZXIoZ3JhbmRDaGlsZE9mUm9vdC5nZXQo
KSwgMSwgMCwgMTApOworCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zvcm07
CisgICAgbGF5ZXJUcmFuc2Zvcm0udHJhbnNsYXRlKDEuMCwgMS4wKTsKKyAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBzdWJsYXllclRyYW5zZm9ybTsKKyAgICBzdWJsYXllclRyYW5zZm9ybS5zY2Fs
ZTNkKDEwLjAsIDEuMCwgMS4wKTsKKworICAgIC8vIFB1dCB0cmFuc2Zvcm0gYW5pbWF0aW9ucyBv
biBjaGlsZCwgcmVuZGVyU3VyZmFjZTIsIGdyYW5kQ2hpbGRPZlJvb3QsIGFuZCBncmFuZENoaWxk
T2ZSUzIKKyAgICBhZGRUcmFuc2Zvcm1BbmltYXRpb25Ub0xheWVyKGNoaWxkT2ZSb290LmdldCgp
LCAxMCk7CisgICAgYWRkVHJhbnNmb3JtQW5pbWF0aW9uVG9MYXllcihncmFuZENoaWxkT2ZSb290
LmdldCgpLCAxMCk7CisgICAgYWRkVHJhbnNmb3JtQW5pbWF0aW9uVG9MYXllcihyZW5kZXJTdXJm
YWNlMi5nZXQoKSwgMTApOworICAgIGFkZFRyYW5zZm9ybUFuaW1hdGlvblRvTGF5ZXIoZ3JhbmRD
aGlsZE9mUlMyLmdldCgpLCAxMCk7CisKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KHBhcmVudC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBv
aW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTAp
LCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyZW5kZXJTdXJmYWNl
MS5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAu
MjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxz
ZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyZW5kZXJTdXJmYWNlMi5nZXQo
KSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAw
LjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7Cisg
ICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZE9mUm9vdC5nZXQoKSwgbGF5ZXJU
cmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxv
YXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5
ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZE9mUlMxLmdldCgpLCBsYXllclRyYW5zZm9ybSwg
c3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDIu
NWYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRp
ZXNGb3JUZXN0aW5nKGNoaWxkT2ZSUzIuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRy
YW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiks
IEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rp
bmcoZ3JhbmRDaGlsZE9mUm9vdC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNm
b3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50
U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhn
cmFuZENoaWxkT2ZSUzEuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwg
RmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUo
MTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRD
aGlsZE9mUlMyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0
UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDIuNWYsIDAuMGYpLCBJbnRTaXplKDEwLCAx
MCksIGZhbHNlKTsKKworICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2li
aWxpdHkocGFyZW50LmdldCgpKTsKKworICAgIC8vIE9ubHkgbGF5ZXJzIHRoYXQgYXJlIGFzc29j
aWF0ZWQgd2l0aCByZW5kZXIgc3VyZmFjZXMgc2hvdWxkIGhhdmUgYW4gYWN0dWFsIHJlbmRlclN1
cmZhY2UoKSB2YWx1ZS4KKyAgICAvLworICAgIEFTU0VSVF9UUlVFKHBhcmVudC0+cmVuZGVyU3Vy
ZmFjZSgpKTsKKyAgICBBU1NFUlRfRkFMU0UoY2hpbGRPZlJvb3QtPnJlbmRlclN1cmZhY2UoKSk7
CisgICAgQVNTRVJUX0ZBTFNFKGdyYW5kQ2hpbGRPZlJvb3QtPnJlbmRlclN1cmZhY2UoKSk7CisK
KyAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpKTsKKyAgICBB
U1NFUlRfRkFMU0UoY2hpbGRPZlJTMS0+cmVuZGVyU3VyZmFjZSgpKTsKKyAgICBBU1NFUlRfRkFM
U0UoZ3JhbmRDaGlsZE9mUlMxLT5yZW5kZXJTdXJmYWNlKCkpOworCisgICAgQVNTRVJUX1RSVUUo
cmVuZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKSk7CisgICAgQVNTRVJUX0ZBTFNFKGNoaWxk
T2ZSUzItPnJlbmRlclN1cmZhY2UoKSk7CisgICAgQVNTRVJUX0ZBTFNFKGdyYW5kQ2hpbGRPZlJT
Mi0+cmVuZGVyU3VyZmFjZSgpKTsKKworICAgIC8vIFZlcmlmeSBhbGwgdGFyZ2V0UmVuZGVyU3Vy
ZmFjZSBhY2Nlc3NvcnMKKyAgICAvLworICAgIEVYUEVDVF9FUShwYXJlbnQtPnJlbmRlclN1cmZh
Y2UoKSwgcGFyZW50LT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworICAgIEVYUEVDVF9FUShwYXJl
bnQtPnJlbmRlclN1cmZhY2UoKSwgY2hpbGRPZlJvb3QtPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7
CisgICAgRVhQRUNUX0VRKHBhcmVudC0+cmVuZGVyU3VyZmFjZSgpLCBncmFuZENoaWxkT2ZSb290
LT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworCisgICAgRVhQRUNUX0VRKHJlbmRlclN1cmZhY2Ux
LT5yZW5kZXJTdXJmYWNlKCksIHJlbmRlclN1cmZhY2UxLT50YXJnZXRSZW5kZXJTdXJmYWNlKCkp
OworICAgIEVYUEVDVF9FUShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLCBjaGlsZE9m
UlMxLT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworICAgIEVYUEVDVF9FUShyZW5kZXJTdXJmYWNl
MS0+cmVuZGVyU3VyZmFjZSgpLCBncmFuZENoaWxkT2ZSUzEtPnRhcmdldFJlbmRlclN1cmZhY2Uo
KSk7CisKKyAgICBFWFBFQ1RfRVEocmVuZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKSwgcmVu
ZGVyU3VyZmFjZTItPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7CisgICAgRVhQRUNUX0VRKHJlbmRl
clN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCksIGNoaWxkT2ZSUzItPnRhcmdldFJlbmRlclN1cmZh
Y2UoKSk7CisgICAgRVhQRUNUX0VRKHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCksIGdy
YW5kQ2hpbGRPZlJTMi0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKKworICAgIC8vIFZlcmlmeSBk
cmF3T3BhY2l0eUlzQW5pbWF0aW5nIHZhbHVlcworICAgIC8vCisgICAgRVhQRUNUX0ZBTFNFKHBh
cmVudC0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY2hpbGRP
ZlJvb3QtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUoZ3JhbmRD
aGlsZE9mUm9vdC0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
cmVuZGVyU3VyZmFjZTEtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RS
VUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd09wYWNpdHlJc0FuaW1hdGlu
ZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY2hpbGRPZlJTMS0+ZHJhd09wYWNpdHlJc0FuaW1hdGlu
ZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZ3JhbmRDaGlsZE9mUlMxLT5kcmF3T3BhY2l0eUlzQW5p
bWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShyZW5kZXJTdXJmYWNlMi0+ZHJhd09wYWNpdHlJ
c0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3Vy
ZmFjZSgpLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShjaGls
ZE9mUlMyLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShncmFu
ZENoaWxkT2ZSUzItPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CisKKyAgICAvLyBWZXJpZnkg
ZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCB2YWx1ZXMKKyAgICAvLworICAgIEVYUEVD
VF9GQUxTRShwYXJlbnQtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1Rf
VFJVRShjaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVD
VF9UUlVFKGdyYW5kQ2hpbGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFjZTEtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygp
KTsKKyAgICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+dGFy
Z2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNo
aWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
Z3JhbmRDaGlsZE9mUlMxLT5kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNU
X0ZBTFNFKHJlbmRlclN1cmZhY2UyLT5kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CisgICAg
RVhQRUNUX1RSVUUocmVuZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKS0+dGFyZ2V0U3VyZmFj
ZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNoaWxkT2ZSUzIt
PmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfVFJVRShncmFuZENoaWxk
T2ZSUzItPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKworICAgIC8vIFZlcmlmeSBkcmF3
VHJhbnNmb3Jtc0FuaW1hdGluZ0luU2NyZWVuIHZhbHVlcworICAgIC8vCisgICAgRVhQRUNUX0ZB
TFNFKHBhcmVudC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBF
Q1RfVFJVRShjaGlsZE9mUm9vdC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsK
KyAgICBFWFBFQ1RfVFJVRShncmFuZENoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5zZm9ybUlz
QW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShyZW5kZXJTdXJmYWNlMS0+c2NyZWVuU3Bh
Y2VUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFj
ZTEtPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKCkp
OworICAgIEVYUEVDVF9GQUxTRShjaGlsZE9mUlMxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5p
bWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShncmFuZENoaWxkT2ZSUzEtPnNjcmVlblNwYWNl
VHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUocmVuZGVyU3VyZmFjZTIt
PnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUocmVu
ZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5p
bWF0aW5nKCkpOworICAgIEVYUEVDVF9UUlVFKGNoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNm
b3JtSXNBbmltYXRpbmcoKSk7CisgICAgRVhQRUNUX1RSVUUoZ3JhbmRDaGlsZE9mUlMyLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOworCisKKyAgICAvLyBTYW5pdHkgY2hlY2su
IElmIHRoZXNlIGZhaWwgdGhlcmUgaXMgcHJvYmFibHkgYSBidWcgaW4gdGhlIHRlc3QgaXRzZWxm
LgorICAgIC8vIEl0IGlzIGV4cGVjdGVkIHRoYXQgd2UgY29ycmVjdGx5IHNldCB1cCB0cmFuc2Zv
cm1zIHNvIHRoYXQgdGhlIHktY29tcG9uZW50IG9mIHRoZSBzY3JlZW4tc3BhY2UgdHJhbnNmb3Jt
CisgICAgLy8gZW5jb2RlcyB0aGUgImRlcHRoIiBvZiB0aGUgbGF5ZXIgaW4gdGhlIHRyZWUuCisg
ICAgRVhQRUNUX0ZMT0FUX0VRKDEuMCwgcGFyZW50LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00
MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMi4wLCBjaGlsZE9mUm9vdC0+c2NyZWVuU3BhY2VU
cmFuc2Zvcm0oKS5tNDIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDMuMCwgZ3JhbmRDaGlsZE9m
Um9vdC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7CisKKyAgICBFWFBFQ1RfRkxPQVRf
RVEoMi4wLCByZW5kZXJTdXJmYWNlMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7Cisg
ICAgRVhQRUNUX0ZMT0FUX0VRKDMuMCwgY2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0o
KS5tNDIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDQuMCwgZ3JhbmRDaGlsZE9mUlMxLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKworICAgIEVYUEVDVF9GTE9BVF9FUSgzLjAsIHJl
bmRlclN1cmZhY2UyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBFWFBFQ1Rf
RkxPQVRfRVEoNC4wLCBjaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsK
KyAgICBFWFBFQ1RfRkxPQVRfRVEoNS4wLCBncmFuZENoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJh
bnNmb3JtKCkubTQyKCkpOworfQorCiAvLyBGSVhNRToKIC8vIGNvbnRpbnVlIHdvcmtpbmcgb24g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQyCiAvLyAgLSBhZGQg
YSB0ZXN0IHRvIHZlcmlmeSBjbGlwcGluZyB0aGF0IGNoYW5nZXMgdGhlICJjZW50ZXIgcG9pbnQi
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>