<?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>157785</bug_id>
          
          <creation_ts>2016-05-16 21:01:05 -0700</creation_ts>
          <short_desc>Add RenderDescendantIterator to traverse a RenderObject&apos;s descendants</short_desc>
          <delta_ts>2016-05-16 21:10:44 -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>Layout and Rendering</component>
          <version>WebKit 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>157784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1193711</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-16 21:01:05 -0700</bug_when>
    <thetext>Add RenderDescendantIterator to traverse a RenderObject&apos;s descendants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193713</commentid>
    <comment_count>1</comment_count>
      <attachid>279096</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-16 21:02:42 -0700</bug_when>
    <thetext>Created attachment 279096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193718</commentid>
    <comment_count>2</comment_count>
      <attachid>279097</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-16 21:07:54 -0700</bug_when>
    <thetext>Created attachment 279097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193719</commentid>
    <comment_count>3</comment_count>
      <attachid>279097</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-16 21:10:38 -0700</bug_when>
    <thetext>Comment on attachment 279097
Patch

Clearing flags on attachment: 279097

Committed r200994: &lt;http://trac.webkit.org/changeset/200994&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193720</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-16 21:10:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279096</attachid>
            <date>2016-05-16 21:02:42 -0700</date>
            <delta_ts>2016-05-16 21:07:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157785-20160516210339.patch</filename>
            <type>text/plain</type>
            <size>17753</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwOTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMwMzc2ZTJlZDhmYzBj
YzAwYzIzZTBlNjFjMDBiYzY3YTAxOGU2ZC4uMzRkODcxYjNjZjIxOTEyYzU4OTg3MDcxMTExNDIx
N2IwMmU1N2VjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA1LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJlbmRlckRlc2NlbmRh
bnRJdGVyYXRvciB0byB0cmF2ZXJzZSBhIFJlbmRlck9iamVjdCdzIGRlc2NlbmRhbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc3ODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUmVuZGVyRGVz
Y2VuZGFudEl0ZXJhdG9yIHRvIHRyYXZlcnNlIGEgUmVuZGVyT2JqZWN0J3MgZGVzY2VuZGFudHMu
IEkKKyAgICAgICAgYW0gcGxhbm5pbmcgdG8gdXNlIGl0IGluIHRoZSBpT1MgVGV4dCBBdXRvc2l6
aW5nIGNvZGUgKFNlZSBCdWcgMTU3Nzg0KS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yPFQ+OjpSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+OjpvcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxUPjo6UmVuZGVyRGVzY2VuZGFudENvbnN0SXRl
cmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8
VD46Om9wZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
ckFkYXB0ZXI8VD46OlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6YmVnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxU
Pjo6UmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxUPjo6YmVnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPFQ+Ojpl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzY2VuZGFudHNPZlR5cGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJJdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
VHJhdmVyc2FsOjpmaXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdFRy
YXZlcnNhbDo6bmV4dEFuY2VzdG9yU2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3RUcmF2ZXJzYWw6Om5leHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJhdmVyc2Fs
OjpmaXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbDo6bGFzdENo
aWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbDo6bmV4dFNpYmxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVHJhdmVyc2FsOjpmaW5kQW5jZXN0b3JPZlR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVHJhdmVyc2FsOjpmaXJzdFdpdGhpbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUcmF2ZXJzYWw6Om5leHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SXRlcmF0b3I8VD46OnRyYXZlcnNlTmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb25z
dEl0ZXJhdG9yPFQ+Ojp0cmF2ZXJzZU5leHQpOgorCiAyMDE2LTA1LTE2ICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBHaXZlIGVhY2ggVW5p
cXVlSURCRGF0YWJhc2UgaXRzIG93biB0YXNrIHF1ZXVlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5N2FjODE3YTczMjFlOTNk
NTM3ZjMzMTMzOTFkNGY2OTMxMDUwM2I2Li5mZDUyODQyZjgzODVkMDYxYTkxMGQ1NDFhOWM4YTMy
MGJhMTExNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yODgzLDYgKzI4ODMsNyBAQAogCQk4MzZDQjFGNzFCRDFFNDE4MDBB
RjE1OTEgLyogSlNIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZDQjFGMzFCRDFFNDE4MDBBRjE1OTEg
LyogSlNIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudC5jcHAgKi87IH07CiAJCTgzNkNCMUY4MUJE
MUU0MTgwMEFGMTU5MSAvKiBKU0hUTUxUYWJsZURhdGFDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2Q0IxRjQxQkQxRTQxODAwQUYx
NTkxIC8qIEpTSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50LmggKi87IH07CiAJCTgzNkNCMUY5MUJE
MUU0MTgwMEFGMTU5MSAvKiBKU0hUTUxUYWJsZURhdGFDZWxsRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZDQjFGNTFCRDFFNDE4MDBB
RjE1OTEgLyogSlNIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQuY3BwICovOyB9OworCQk4MzZEQUEw
NjFDRUFCODBEMDBBMkI3MDcgLyogUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZEQUEwNTFDRUFCN0NEMDBB
MkI3MDcgLyogUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggKi87IH07CiAJCTgzNkZCQ0VBMTc4
QzExMzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFOTE3OEMxMTMyMDBCMjFB
MTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovOyB9OwogCQk4MzZGQkNFQzE3OEMx
MTdGMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFQjE3OEMxMTdGMDBCMjFBMTUgLyog
U1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgKi87IH07CiAJCTgzNzJEQjMxMUE2NzgwQTgwMEM2OTdD
NSAvKiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzJEQjMwMUE2NzgwQTgwMEM2OTdDNSAvKiBEaWFn
bm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTA1NjUsNiArMTA1NjYsNyBAQAogCQk4MzZDQjFGMzFCRDFF
NDE4MDBBRjE1OTEgLyogSlNIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2Q0IxRjQxQkQxRTQxODAwQUYx
NTkxIC8qIEpTSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNkNCMUY1MUJEMUU0MTgwMEFGMTU5MSAvKiBKU0hUTUxUYWJsZURh
dGFDZWxsRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0hUTUxUYWJsZURhdGFDZWxsRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzNkRBQTA1MUNFQUI3Q0QwMEEyQjcwNyAvKiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkZCQ0U5MTc4QzExMzIwMEIy
MUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzNkZCQ0VCMTc4QzExN0YwMEIyMUExNSAvKiBTVkdBbmltYXRl
ZFByb3BlcnR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0Fu
aW1hdGVkUHJvcGVydHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzcyREIz
MDFBNjc4MEE4MDBDNjk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQwMzcsNiArMjQwMzksNyBAQAogCQkJ
CTkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmggKi8sCiAJCQkJQkNF
QTQ4MkUwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAg
Ki8sCiAJCQkJQkNFQTQ4MkYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveC5oICovLAorCQkJCTgzNkRBQTA1MUNFQUI3Q0QwMEEyQjcwNyAvKiBSZW5kZXJEZXNj
ZW5kYW50SXRlcmF0b3IuaCAqLywKIAkJCQlEMzAyNzU0NTEyQTVGRTg0MDA0QkQ4MjggLyogUmVu
ZGVyRGV0YWlsc01hcmtlci5jcHAgKi8sCiAJCQkJRDMwMjc1NDYxMkE1RkU4NDAwNEJEODI4IC8q
IFJlbmRlckRldGFpbHNNYXJrZXIuaCAqLywKIAkJCQlFNDNBMDIzQzE3RUIzNzEzMDA0Q0REMjUg
LyogUmVuZGVyRWxlbWVudC5jcHAgKi8sCkBAIC0yODIwNSw2ICsyODIwOCw3IEBACiAJCQkJMDg1
NEIwMjExMjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTMwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMYW5nU3BhY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTMzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGguaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzNkRBQTA2MUNFQUI4MEQwMEEyQjcwNyAvKiBSZW5kZXJEZXNjZW5k
YW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMzQ0OTZFMTQ2OTQxQjMwMDcyMDMx
MiAvKiBTVkdMZW5ndGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EzNjBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
MzkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVzY2Vu
ZGFudEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFu
dEl0ZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE5NjQ3MzlkNGIzNzhlYWJmODY4ODg2ZDcxYTM2YWYz
NzZjZTQ5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXNjZW5kYW50SXRlcmF0b3IuaApAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFJlbmRlckRlc2NlbmRhbnRJ
dGVyYXRvciA6IHB1YmxpYyBSZW5kZXJJdGVyYXRvcjxUPiB7CitwdWJsaWM6CisgICAgUmVuZGVy
RGVzY2VuZGFudEl0ZXJhdG9yKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJvb3QpOworICAgIFJlbmRl
ckRlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBSZW5kZXJFbGVtZW50JiByb290LCBUKiBjdXJyZW50
KTsKKyAgICBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKK307CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3Ig
OiBwdWJsaWMgUmVuZGVyQ29uc3RJdGVyYXRvcjxUPiB7CitwdWJsaWM6CisgICAgUmVuZGVyRGVz
Y2VuZGFudENvbnN0SXRlcmF0b3IoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdCk7CisgICAgUmVu
ZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3IoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdCwgY29u
c3QgVCogY3VycmVudCk7CisgICAgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3ImIG9wZXJh
dG9yKysoKTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgUmVuZGVyRGVzY2Vu
ZGFudEl0ZXJhdG9yQWRhcHRlciB7CitwdWJsaWM6CisgICAgUmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yQWRhcHRlcihSZW5kZXJFbGVtZW50JiByb290KTsKKyAgICBSZW5kZXJEZXNjZW5kYW50SXRl
cmF0b3I8VD4gYmVnaW4oKTsKKyAgICBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gZW5kKCk7
CisKK3ByaXZhdGU6CisgICAgUmVuZGVyRWxlbWVudCYgbV9yb290OworfTsKKwordGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CitjbGFzcyBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIg
eworcHVibGljOgorICAgIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25z
dCBSZW5kZXJFbGVtZW50JiByb290KTsKKyAgICBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRv
cjxUPiBiZWdpbigpIGNvbnN0OworICAgIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPFQ+
IGVuZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIGNvbnN0IFJlbmRlckVsZW1lbnQmIG1fcm9v
dDsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JB
ZGFwdGVyPFQ+IGRlc2NlbmRhbnRzT2ZUeXBlKFJlbmRlckVsZW1lbnQmKTsKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPiBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8VD4gZGVzY2Vu
ZGFudHNPZlR5cGUoY29uc3QgUmVuZGVyRWxlbWVudCYpOworCisvLyBSZW5kZXJEZXNjZW5kYW50
SXRlcmF0b3IKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyRGVzY2VuZGFu
dEl0ZXJhdG9yPFQ+OjpSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IoY29uc3QgUmVuZGVyRWxlbWVu
dCYgcm9vdCkKKyAgICA6IFJlbmRlckl0ZXJhdG9yPFQ+KCZyb290KQoreworfQorCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD46OlJlbmRl
ckRlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBSZW5kZXJFbGVtZW50JiByb290LCBUKiBjdXJyZW50
KQorICAgIDogUmVuZGVySXRlcmF0b3I8VD4oJnJvb3QsIGN1cnJlbnQpCit7Cit9CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxUPiYgUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+OjpvcGVyYXRvcisrKCkKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+Jj4oUmVuZGVySXRlcmF0b3I8VD46
OnRyYXZlcnNlTmV4dCgpKTsKK30KKworLy8gUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3IK
KwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRl
cmF0b3I8VD46OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IFJlbmRlckVsZW1l
bnQmIHJvb3QpCisgICAgOiBSZW5kZXJDb25zdEl0ZXJhdG9yPFQ+KCZyb290KQoreworfQorCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRv
cjxUPjo6UmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3IoY29uc3QgUmVuZGVyRWxlbWVudCYg
cm9vdCwgY29uc3QgVCogY3VycmVudCkKKyAgICA6IFJlbmRlckNvbnN0SXRlcmF0b3I8VD4oJnJv
b3QsIGN1cnJlbnQpCit7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJlbmRl
ckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPFQ+JiBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRv
cjxUPjo6b3BlcmF0b3IrKygpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckRlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yPFQ+Jj4oUmVuZGVyQ29uc3RJdGVyYXRvcjxUPjo6dHJhdmVyc2VO
ZXh0KCkpOworfQorCisvLyBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyCisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8
VD46OlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIoUmVuZGVyRWxlbWVudCYgcm9vdCkK
KyAgICA6IG1fcm9vdChyb290KQoreworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGlu
ZSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRh
cHRlcjxUPjo6YmVnaW4oKQoreworICAgIHJldHVybiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8
VD4obV9yb290LCBSZW5kZXJUcmF2ZXJzYWw6OmZpcnN0V2l0aGluPFQ+KG1fcm9vdCkpOworfQor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8
VD4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6ZW5kKCkKK3sKKyAgICByZXR1
cm4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+KG1fcm9vdCk7Cit9CisKKy8vIFJlbmRlckRl
c2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lu
bGluZSBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8VD46OlJlbmRlckRlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25zdCBSZW5kZXJFbGVtZW50JiByb290KQorICAg
IDogbV9yb290KHJvb3QpCit7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJl
bmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPFQ+IFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJh
dG9yQWRhcHRlcjxUPjo6YmVnaW4oKSBjb25zdAoreworICAgIHJldHVybiBSZW5kZXJEZXNjZW5k
YW50Q29uc3RJdGVyYXRvcjxUPihtX3Jvb3QsIFJlbmRlclRyYXZlcnNhbDo6Zmlyc3RXaXRoaW48
VD4obV9yb290KSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJlbmRlckRl
c2NlbmRhbnRDb25zdEl0ZXJhdG9yPFQ+IFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRh
cHRlcjxUPjo6ZW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gUmVuZGVyRGVzY2VuZGFudENvbnN0
SXRlcmF0b3I8VD4obV9yb290KTsKK30KKworLy8gU3RhbmRhbG9uZSBmdW5jdGlvbnMKKwordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRl
cjxUPiBkZXNjZW5kYW50c09mVHlwZShSZW5kZXJFbGVtZW50JiByb290KQoreworICAgIHJldHVy
biBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+KHJvb3QpOworfQorCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0
ZXI8VD4gZGVzY2VuZGFudHNPZlR5cGUoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdCkKK3sKKyAg
ICByZXR1cm4gUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPFQ+KHJvb3QpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJdGVyYXRvci5oCmluZGV4IDk4MzJiNGYwZmQ4NmYwODUwMWQyZjc2YzYzMDAzNDE1MjliZGI5
OWQuLjQyNTg3MzllMTU1MGY1YTBjOGZjNzU2ODE2ZTQzN2JlMDE2YzZkOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJdGVyYXRvci5oCkBAIC00Miw2ICs0Miw3IEBAIHB1Ymxp
YzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVuZGVySXRlcmF0b3ImIG90aGVyKSBjb25z
dDsKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVuZGVySXRlcmF0b3ImIG90aGVyKSBjb25z
dDsKIAorICAgIFJlbmRlckl0ZXJhdG9yJiB0cmF2ZXJzZU5leHQoKTsKICAgICBSZW5kZXJJdGVy
YXRvciYgdHJhdmVyc2VOZXh0U2libGluZygpOwogICAgIFJlbmRlckl0ZXJhdG9yJiB0cmF2ZXJz
ZVByZXZpb3VzU2libGluZygpOwogICAgIFJlbmRlckl0ZXJhdG9yJiB0cmF2ZXJzZUFuY2VzdG9y
KCk7CkBAIC02Myw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
UmVuZGVyQ29uc3RJdGVyYXRvciYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBSZW5kZXJDb25zdEl0ZXJhdG9yJiBvdGhlcikgY29uc3Q7CiAKKyAgICBSZW5kZXJDb25z
dEl0ZXJhdG9yJiB0cmF2ZXJzZU5leHQoKTsKICAgICBSZW5kZXJDb25zdEl0ZXJhdG9yJiB0cmF2
ZXJzZU5leHRTaWJsaW5nKCk7CiAgICAgUmVuZGVyQ29uc3RJdGVyYXRvciYgdHJhdmVyc2VQcmV2
aW91c1NpYmxpbmcoKTsKICAgICBSZW5kZXJDb25zdEl0ZXJhdG9yJiB0cmF2ZXJzZUFuY2VzdG9y
KCk7CkBAIC03OCwxOSArODAsNjEgQEAgaW5saW5lIGJvb2wgaXNSZW5kZXJlck9mVHlwZShjb25z
dCBVJiByZW5kZXJlcikgeyByZXR1cm4gVHlwZUNhc3RUcmFpdHM8Y29uc3QgVCwKIAogLy8gVHJh
dmVyc2FsIGhlbHBlcnMKIAorbmFtZXNwYWNlIFJlbmRlck9iamVjdFRyYXZlcnNhbCB7CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBVPiBpbmxpbmUgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkKFUmIG9i
amVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0LmZpcnN0Q2hpbGQoKTsKK30KKworaW5saW5lIFJl
bmRlck9iamVjdCogZmlyc3RDaGlsZChSZW5kZXJPYmplY3QmIG9iamVjdCkKK3sKKyAgICByZXR1
cm4gb2JqZWN0LmZpcnN0Q2hpbGRTbG93KCk7Cit9CisKK2lubGluZSBSZW5kZXJPYmplY3QqIGZp
cnN0Q2hpbGQoUmVuZGVyVGV4dCYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2lubGlu
ZSBSZW5kZXJPYmplY3QqIG5leHRBbmNlc3RvclNpYmxpbmcoUmVuZGVyT2JqZWN0JiBjdXJyZW50
LCBjb25zdCBSZW5kZXJPYmplY3QqIHN0YXlXaXRoaW4pCit7CisgICAgZm9yIChhdXRvKiBhbmNl
c3RvciA9IGN1cnJlbnQucGFyZW50KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5w
YXJlbnQoKSkgeworICAgICAgICBpZiAoYW5jZXN0b3IgPT0gc3RheVdpdGhpbikKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICBpZiAoYXV0byogc2libGluZyA9IGFuY2VzdG9y
LT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgcmV0dXJuIHNpYmxpbmc7CisgICAgfQorICAg
IHJldHVybiBudWxscHRyOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gaW5saW5lIFJlbmRl
ck9iamVjdCogbmV4dChVJiBjdXJyZW50LCBjb25zdCBSZW5kZXJPYmplY3QqIHN0YXlXaXRoaW4p
Cit7CisgICAgaWYgKGF1dG8qIGNoaWxkID0gZmlyc3RDaGlsZChjdXJyZW50KSkKKyAgICAgICAg
cmV0dXJuIGNoaWxkOworCisgICAgaWYgKCZjdXJyZW50ID09IHN0YXlXaXRoaW4pCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgaWYgKGF1dG8qIHNpYmxpbmcgPSBjdXJyZW50Lm5leHRT
aWJsaW5nKCkpCisgICAgICAgIHJldHVybiBzaWJsaW5nOworCisgICAgcmV0dXJuIG5leHRBbmNl
c3RvclNpYmxpbmcoY3VycmVudCwgc3RheVdpdGhpbik7Cit9CisKK30KKwogbmFtZXNwYWNlIFJl
bmRlclRyYXZlcnNhbCB7CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotaW5s
aW5lIFQqIGZpcnN0Q2hpbGQoVSYgY3VycmVudCkKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBpbmxpbmUgVCogZmlyc3RDaGlsZChVJiBjdXJyZW50KQogewotICAgIFJlbmRlck9i
amVjdCogb2JqZWN0ID0gY3VycmVudC5maXJzdENoaWxkKCk7CisgICAgUmVuZGVyT2JqZWN0KiBv
YmplY3QgPSBSZW5kZXJPYmplY3RUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQoY3VycmVudCk7CiAgICAg
d2hpbGUgKG9iamVjdCAmJiAhaXNSZW5kZXJlck9mVHlwZTxUPigqb2JqZWN0KSkKICAgICAgICAg
b2JqZWN0ID0gb2JqZWN0LT5uZXh0U2libGluZygpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxU
Kj4ob2JqZWN0KTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1pbmxp
bmUgVCogbGFzdENoaWxkKFUmIGN1cnJlbnQpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4gaW5saW5lIFQqIGxhc3RDaGlsZChVJiBjdXJyZW50KQogewogICAgIFJlbmRlck9iamVj
dCogb2JqZWN0ID0gY3VycmVudC5sYXN0Q2hpbGQoKTsKICAgICB3aGlsZSAob2JqZWN0ICYmICFp
c1JlbmRlcmVyT2ZUeXBlPFQ+KCpvYmplY3QpKQpAQCAtOTgsOCArMTQyLDcgQEAgaW5saW5lIFQq
IGxhc3RDaGlsZChVJiBjdXJyZW50KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4ob2JqZWN0
KTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1pbmxpbmUgVCogbmV4
dFNpYmxpbmcoVSYgY3VycmVudCkKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBp
bmxpbmUgVCogbmV4dFNpYmxpbmcoVSYgY3VycmVudCkKIHsKICAgICBSZW5kZXJPYmplY3QqIG9i
amVjdCA9IGN1cnJlbnQubmV4dFNpYmxpbmcoKTsKICAgICB3aGlsZSAob2JqZWN0ICYmICFpc1Jl
bmRlcmVyT2ZUeXBlPFQ+KCpvYmplY3QpKQpAQCAtMTA3LDggKzE1MCw3IEBAIGlubGluZSBUKiBu
ZXh0U2libGluZyhVJiBjdXJyZW50KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4ob2JqZWN0
KTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1pbmxpbmUgVCogcHJl
dmlvdXNTaWJsaW5nKFUmIGN1cnJlbnQpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4gaW5saW5lIFQqIHByZXZpb3VzU2libGluZyhVJiBjdXJyZW50KQogewogICAgIFJlbmRlck9i
amVjdCogb2JqZWN0ID0gY3VycmVudC5wcmV2aW91c1NpYmxpbmcoKTsKICAgICB3aGlsZSAob2Jq
ZWN0ICYmICFpc1JlbmRlcmVyT2ZUeXBlPFQ+KCpvYmplY3QpKQpAQCAtMTE2LDggKzE1OCw3IEBA
IGlubGluZSBUKiBwcmV2aW91c1NpYmxpbmcoVSYgY3VycmVudCkKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VCo+KG9iamVjdCk7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotaW5saW5lIFQq
IGZpbmRBbmNlc3Rvck9mVHlwZShjb25zdCBSZW5kZXJPYmplY3QmIGN1cnJlbnQpCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQqIGZpbmRBbmNlc3Rvck9mVHlwZShjb25zdCBSZW5kZXJP
YmplY3QmIGN1cnJlbnQpCiB7CiAgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9IGN1cnJlbnQucGFy
ZW50KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgewogICAgICAg
ICBpZiAoaXNSZW5kZXJlck9mVHlwZTxUPigqYW5jZXN0b3IpKQpAQCAtMTI2LDYgKzE2NywyMiBA
QCBpbmxpbmUgVCogZmluZEFuY2VzdG9yT2ZUeXBlKGNvbnN0IFJlbmRlck9iamVjdCYgY3VycmVu
dCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IGlubGluZSBUKiBmaXJzdFdpdGhpbihVJiBjdXJyZW50KQoreworICAgIGF1dG8qIGRl
c2NlbmRhbnQgPSBSZW5kZXJPYmplY3RUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQoY3VycmVudCk7Cisg
ICAgd2hpbGUgKGRlc2NlbmRhbnQgJiYgIWlzUmVuZGVyZXJPZlR5cGU8VD4oKmRlc2NlbmRhbnQp
KQorICAgICAgICBkZXNjZW5kYW50ID0gUmVuZGVyT2JqZWN0VHJhdmVyc2FsOjpuZXh0KCpkZXNj
ZW5kYW50LCAmY3VycmVudCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihkZXNjZW5kYW50
KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBUKiBuZXh0
KFUmIGN1cnJlbnQsIGNvbnN0IFJlbmRlck9iamVjdCogc3RheVdpdGhpbikKK3sKKyAgICBhdXRv
KiBkZXNjZW5kYW50ID0gUmVuZGVyT2JqZWN0VHJhdmVyc2FsOjpuZXh0KGN1cnJlbnQsIHN0YXlX
aXRoaW4pOworICAgIHdoaWxlIChkZXNjZW5kYW50ICYmICFpc1JlbmRlcmVyT2ZUeXBlPFQ+KCpk
ZXNjZW5kYW50KSkKKyAgICAgICAgZGVzY2VuZGFudCA9IFJlbmRlck9iamVjdFRyYXZlcnNhbDo6
bmV4dCgqZGVzY2VuZGFudCwgc3RheVdpdGhpbik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQq
PihkZXNjZW5kYW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZTo6UmVuZGVyVHJhdmVy
c2FsCiAKIC8vIFJlbmRlckl0ZXJhdG9yCkBAIC0xNTMsNiArMjEwLDE0IEBAIGlubGluZSBSZW5k
ZXJJdGVyYXRvcjxUPiYgUmVuZGVySXRlcmF0b3I8VD46OnRyYXZlcnNlTmV4dFNpYmxpbmcoKQog
fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJJdGVyYXRvcjxUPiYgUmVu
ZGVySXRlcmF0b3I8VD46OnRyYXZlcnNlTmV4dCgpCit7CisgICAgQVNTRVJUKG1fY3VycmVudCk7
CisgICAgbV9jdXJyZW50ID0gUmVuZGVyVHJhdmVyc2FsOjpuZXh0PFQ+KCptX2N1cnJlbnQsIG1f
cm9vdCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGlu
bGluZSBSZW5kZXJJdGVyYXRvcjxUPiYgUmVuZGVySXRlcmF0b3I8VD46OnRyYXZlcnNlUHJldmlv
dXNTaWJsaW5nKCkKIHsKICAgICBBU1NFUlQobV9jdXJyZW50KTsKQEAgLTIyMSw2ICsyODYsMTQg
QEAgaW5saW5lIFJlbmRlckNvbnN0SXRlcmF0b3I8VD4mIFJlbmRlckNvbnN0SXRlcmF0b3I8VD46
OnRyYXZlcnNlTmV4dFNpYmxpbmcoKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGlu
ZSBSZW5kZXJDb25zdEl0ZXJhdG9yPFQ+JiBSZW5kZXJDb25zdEl0ZXJhdG9yPFQ+Ojp0cmF2ZXJz
ZU5leHQoKQoreworICAgIEFTU0VSVChtX2N1cnJlbnQpOworICAgIG1fY3VycmVudCA9IFJlbmRl
clRyYXZlcnNhbDo6bmV4dDxUPigqbV9jdXJyZW50LCBtX3Jvb3QpOworICAgIHJldHVybiAqdGhp
czsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxpbmUgUmVuZGVyQ29uc3RJdGVyYXRv
cjxUPiYgUmVuZGVyQ29uc3RJdGVyYXRvcjxUPjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcoKQog
ewogICAgIEFTU0VSVChtX2N1cnJlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279097</attachid>
            <date>2016-05-16 21:07:54 -0700</date>
            <delta_ts>2016-05-16 21:10:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157785-20160516210850.patch</filename>
            <type>text/plain</type>
            <size>16350</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwOTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMwMzc2ZTJlZDhmYzBj
YzAwYzIzZTBlNjFjMDBiYzY3YTAxOGU2ZC4uYjdmNzQ1NmVkN2Q2N2E4NTQwNGJkMjBjY2ZkZTli
YTQ2NmI1YzY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA1LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJlbmRlckRlc2NlbmRh
bnRJdGVyYXRvciB0byB0cmF2ZXJzZSBhIFJlbmRlck9iamVjdCdzIGRlc2NlbmRhbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc3ODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBaYWxhbiBCdWp0YXMuCisKKyAgICAgICAgQWRkIFJlbmRlckRlc2Nl
bmRhbnRJdGVyYXRvciB0byB0cmF2ZXJzZSBhIFJlbmRlck9iamVjdCdzIGRlc2NlbmRhbnRzLiBJ
CisgICAgICAgIGFtIHBsYW5uaW5nIHRvIHVzZSBpdCBpbiB0aGUgaU9TIFRleHQgQXV0b3Npemlu
ZyBjb2RlIChTZWUgQnVnIDE1Nzc4NCkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlc2NlbmRhbnRJdGVy
YXRvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
cjxUPjo6UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckRlc2NlbmRhbnRJdGVyYXRvcjxUPjo6b3BlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8VD46OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJh
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPFQ+
OjpvcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JB
ZGFwdGVyPFQ+OjpSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OmJlZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OmVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8VD46
OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8VD46OmJlZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxUPjo6ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2NlbmRhbnRzT2ZUeXBlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVySXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdFRy
YXZlcnNhbDo6Zmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3RUcmF2
ZXJzYWw6Om5leHRBbmNlc3RvclNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0VHJhdmVyc2FsOjpuZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbDo6
Zmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmF2ZXJzYWw6Omxhc3RDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbDo6cHJldmlvdXNTaWJsaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbDo6ZmluZEFuY2VzdG9yT2ZUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbDo6Zmlyc3RXaXRoaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVHJhdmVyc2FsOjpuZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckl0
ZXJhdG9yPFQ+Ojp0cmF2ZXJzZU5leHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ29uc3RJ
dGVyYXRvcjxUPjo6dHJhdmVyc2VOZXh0KToKKwogMjAxNi0wNS0xNiAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQjogR2l2ZSBlYWNoIFVuaXF1
ZUlEQkRhdGFiYXNlIGl0cyBvd24gdGFzayBxdWV1ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTdhYzgxN2E3MzIxZTkzZDUz
N2YzMzEzMzkxZDRmNjkzMTA1MDNiNi4uZmQ1Mjg0MmY4Mzg1ZDA2MWE5MTBkNTQxYTljOGEzMjBi
YTExMTU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjg4Myw2ICsyODgzLDcgQEAKIAkJODM2Q0IxRjcxQkQxRTQxODAwQUYx
NTkxIC8qIEpTSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2Q0IxRjMxQkQxRTQxODAwQUYxNTkxIC8q
IEpTSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQuY3BwICovOyB9OwogCQk4MzZDQjFGODFCRDFF
NDE4MDBBRjE1OTEgLyogSlNIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNkNCMUY0MUJEMUU0MTgwMEFGMTU5
MSAvKiBKU0hUTUxUYWJsZURhdGFDZWxsRWxlbWVudC5oICovOyB9OwogCQk4MzZDQjFGOTFCRDFF
NDE4MDBBRjE1OTEgLyogSlNIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2Q0IxRjUxQkQxRTQxODAwQUYx
NTkxIC8qIEpTSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50LmNwcCAqLzsgfTsKKwkJODM2REFBMDYx
Q0VBQjgwRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2REFBMDUxQ0VBQjdDRDAwQTJC
NzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oICovOyB9OwogCQk4MzZGQkNFQTE3OEMx
MTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1
IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAqLzsgfTsKIAkJODM2RkJDRUMxNzhDMTE3
RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRUIxNzhDMTE3RjAwQjIxQTE1IC8qIFNW
R0FuaW1hdGVkUHJvcGVydHkuY3BwICovOyB9OwogCQk4MzcyREIzMTFBNjc4MEE4MDBDNjk3QzUg
LyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIzMDFBNjc4MEE4MDBDNjk3QzUgLyogRGlhZ25v
c3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTEwNTY1LDYgKzEwNTY2LDcgQEAKIAkJODM2Q0IxRjMxQkQxRTQx
ODAwQUYxNTkxIC8qIEpTSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkNCMUY0MUJEMUU0MTgwMEFGMTU5
MSAvKiBKU0hUTUxUYWJsZURhdGFDZWxsRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0hUTUxUYWJsZURhdGFDZWxsRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzZDQjFGNTFCRDFFNDE4MDBBRjE1OTEgLyogSlNIVE1MVGFibGVEYXRh
Q2VsbEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNI
VE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzZEQUEwNTFDRUFCN0NEMDBBMkI3MDcgLyogUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZGQkNFOTE3OEMxMTMyMDBCMjFB
MTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4MzZGQkNFQjE3OEMxMTdGMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmlt
YXRlZFByb3BlcnR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3MkRCMzAx
QTY3ODBBODAwQzY5N0M1IC8qIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MDM3LDYgKzI0MDM5LDcgQEAKIAkJCQk5
MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oICovLAogCQkJCUJDRUE0
ODJFMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwICov
LAogCQkJCUJDRUE0ODJGMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guaCAqLywKKwkJCQk4MzZEQUEwNTFDRUFCN0NEMDBBMkI3MDcgLyogUmVuZGVyRGVzY2Vu
ZGFudEl0ZXJhdG9yLmggKi8sCiAJCQkJRDMwMjc1NDUxMkE1RkU4NDAwNEJEODI4IC8qIFJlbmRl
ckRldGFpbHNNYXJrZXIuY3BwICovLAogCQkJCUQzMDI3NTQ2MTJBNUZFODQwMDRCRDgyOCAvKiBS
ZW5kZXJEZXRhaWxzTWFya2VyLmggKi8sCiAJCQkJRTQzQTAyM0MxN0VCMzcxMzAwNENERDI1IC8q
IFJlbmRlckVsZW1lbnQuY3BwICovLApAQCAtMjgyMDUsNiArMjgyMDgsNyBAQAogCQkJCTA4NTRC
MDIxMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyN0EzMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGFuZ1NwYWNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0EzMzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGVuZ3RoLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MzZEQUEwNjFDRUFCODBEMDBBMkI3MDcgLyogUmVuZGVyRGVzY2VuZGFu
dEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTM0NDk2RTE0Njk0MUIzMDA3MjAzMTIg
LyogU1ZHTGVuZ3RoQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBMzYwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR0xlbmd0aExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTM5
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlc2NlbmRh
bnRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlc2NlbmRhbnRJ
dGVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOTY0NzM5ZDRiMzc4ZWFiZjg2ODg4NmQ3MWEzNmFmMzc2
Y2U0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVzY2VuZGFudEl0ZXJhdG9yLmgKQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBSZW5kZXJEZXNjZW5kYW50SXRl
cmF0b3IgOiBwdWJsaWMgUmVuZGVySXRlcmF0b3I8VD4geworcHVibGljOgorICAgIFJlbmRlckRl
c2NlbmRhbnRJdGVyYXRvcihjb25zdCBSZW5kZXJFbGVtZW50JiByb290KTsKKyAgICBSZW5kZXJE
ZXNjZW5kYW50SXRlcmF0b3IoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdCwgVCogY3VycmVudCk7
CisgICAgUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7Cit9OworCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yIDog
cHVibGljIFJlbmRlckNvbnN0SXRlcmF0b3I8VD4geworcHVibGljOgorICAgIFJlbmRlckRlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJvb3QpOworICAgIFJlbmRl
ckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJvb3QsIGNvbnN0
IFQqIGN1cnJlbnQpOworICAgIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yJiBvcGVyYXRv
cisrKCk7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFJlbmRlckRlc2NlbmRh
bnRJdGVyYXRvckFkYXB0ZXIgeworcHVibGljOgorICAgIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
ckFkYXB0ZXIoUmVuZGVyRWxlbWVudCYgcm9vdCk7CisgICAgUmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yPFQ+IGJlZ2luKCk7CisgICAgUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+IGVuZCgpOwor
Citwcml2YXRlOgorICAgIFJlbmRlckVsZW1lbnQmIG1fcm9vdDsKK307CisKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPgorY2xhc3MgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyIHsK
K3B1YmxpYzoKKyAgICBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIoY29uc3Qg
UmVuZGVyRWxlbWVudCYgcm9vdCk7CisgICAgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8
VD4gYmVnaW4oKSBjb25zdDsKKyAgICBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxUPiBl
bmQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBjb25zdCBSZW5kZXJFbGVtZW50JiBtX3Jvb3Q7
Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRh
cHRlcjxUPiBkZXNjZW5kYW50c09mVHlwZShSZW5kZXJFbGVtZW50Jik7Cit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPFQ+IGRlc2NlbmRh
bnRzT2ZUeXBlKGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKKworLy8gUmVuZGVyRGVzY2VuZGFudEl0
ZXJhdG9yCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJlbmRlckRlc2NlbmRhbnRJ
dGVyYXRvcjxUPjo6UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yKGNvbnN0IFJlbmRlckVsZW1lbnQm
IHJvb3QpCisgICAgOiBSZW5kZXJJdGVyYXRvcjxUPigmcm9vdCkKK3sKK30KKwordGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+OjpSZW5kZXJE
ZXNjZW5kYW50SXRlcmF0b3IoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdCwgVCogY3VycmVudCkK
KyAgICA6IFJlbmRlckl0ZXJhdG9yPFQ+KCZyb290LCBjdXJyZW50KQoreworfQorCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4mIFJlbmRl
ckRlc2NlbmRhbnRJdGVyYXRvcjxUPjo6b3BlcmF0b3IrKygpCit7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxUPiY+KFJlbmRlckl0ZXJhdG9yPFQ+Ojp0
cmF2ZXJzZU5leHQoKSk7Cit9CisKKy8vIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yCisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJh
dG9yPFQ+OjpSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvcihjb25zdCBSZW5kZXJFbGVtZW50
JiByb290KQorICAgIDogUmVuZGVyQ29uc3RJdGVyYXRvcjxUPigmcm9vdCkKK3sKK30KKwordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8
VD46OlJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJv
b3QsIGNvbnN0IFQqIGN1cnJlbnQpCisgICAgOiBSZW5kZXJDb25zdEl0ZXJhdG9yPFQ+KCZyb290
LCBjdXJyZW50KQoreworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJE
ZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxUPiYgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8
VD46Om9wZXJhdG9yKysoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJEZXNjZW5k
YW50Q29uc3RJdGVyYXRvcjxUPiY+KFJlbmRlckNvbnN0SXRlcmF0b3I8VD46OnRyYXZlcnNlTmV4
dCgpKTsKK30KKworLy8gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcgorCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+
OjpSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKFJlbmRlckVsZW1lbnQmIHJvb3QpCisg
ICAgOiBtX3Jvb3Qocm9vdCkKK3sKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUg
UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0
ZXI8VD46OmJlZ2luKCkKK3sKKyAgICByZXR1cm4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+
KG1fcm9vdCwgUmVuZGVyVHJhdmVyc2FsOjpmaXJzdFdpdGhpbjxUPihtX3Jvb3QpKTsKK30KKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+
IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OmVuZCgpCit7CisgICAgcmV0dXJu
IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxUPihtX3Jvb3QpOworfQorCisvLyBSZW5kZXJEZXNj
ZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Citpbmxp
bmUgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPFQ+OjpSZW5kZXJEZXNjZW5k
YW50Q29uc3RJdGVyYXRvckFkYXB0ZXIoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdCkKKyAgICA6
IG1fcm9vdChyb290KQoreworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5k
ZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxUPiBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRv
ckFkYXB0ZXI8VD46OmJlZ2luKCkgY29uc3QKK3sKKyAgICByZXR1cm4gUmVuZGVyRGVzY2VuZGFu
dENvbnN0SXRlcmF0b3I8VD4obV9yb290LCBSZW5kZXJUcmF2ZXJzYWw6OmZpcnN0V2l0aGluPFQ+
KG1fcm9vdCkpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBSZW5kZXJEZXNj
ZW5kYW50Q29uc3RJdGVyYXRvcjxUPiBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0
ZXI8VD46OmVuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0
ZXJhdG9yPFQ+KG1fcm9vdCk7Cit9CisKKy8vIFN0YW5kYWxvbmUgZnVuY3Rpb25zCisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8
VD4gZGVzY2VuZGFudHNPZlR5cGUoUmVuZGVyRWxlbWVudCYgcm9vdCkKK3sKKyAgICByZXR1cm4g
UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPihyb290KTsKK30KKwordGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVy
PFQ+IGRlc2NlbmRhbnRzT2ZUeXBlKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJvb3QpCit7CisgICAg
cmV0dXJuIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxUPihyb290KTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SXRlcmF0b3IuaAppbmRleCA5ODMyYjRmMGZkODZmMDg1MDFkMmY3NmM2MzAwMzQxNTI5YmRiOTlk
Li4xYmIwNjJlOTUxOTFkNTc1YmJlNTI5NTFmZWFhNDc3NDlkMWZlNWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlbmRlckl0ZXJhdG9yJiBvdGhlcikgY29uc3Q7
CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlbmRlckl0ZXJhdG9yJiBvdGhlcikgY29uc3Q7
CiAKKyAgICBSZW5kZXJJdGVyYXRvciYgdHJhdmVyc2VOZXh0KCk7CiAgICAgUmVuZGVySXRlcmF0
b3ImIHRyYXZlcnNlTmV4dFNpYmxpbmcoKTsKICAgICBSZW5kZXJJdGVyYXRvciYgdHJhdmVyc2VQ
cmV2aW91c1NpYmxpbmcoKTsKICAgICBSZW5kZXJJdGVyYXRvciYgdHJhdmVyc2VBbmNlc3Rvcigp
OwpAQCAtNjMsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJl
bmRlckNvbnN0SXRlcmF0b3ImIG90aGVyKSBjb25zdDsKICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgUmVuZGVyQ29uc3RJdGVyYXRvciYgb3RoZXIpIGNvbnN0OwogCisgICAgUmVuZGVyQ29uc3RJ
dGVyYXRvciYgdHJhdmVyc2VOZXh0KCk7CiAgICAgUmVuZGVyQ29uc3RJdGVyYXRvciYgdHJhdmVy
c2VOZXh0U2libGluZygpOwogICAgIFJlbmRlckNvbnN0SXRlcmF0b3ImIHRyYXZlcnNlUHJldmlv
dXNTaWJsaW5nKCk7CiAgICAgUmVuZGVyQ29uc3RJdGVyYXRvciYgdHJhdmVyc2VBbmNlc3Rvcigp
OwpAQCAtNzgsMTIgKzgwLDU4IEBAIGlubGluZSBib29sIGlzUmVuZGVyZXJPZlR5cGUoY29uc3Qg
VSYgcmVuZGVyZXIpIHsgcmV0dXJuIFR5cGVDYXN0VHJhaXRzPGNvbnN0IFQsCiAKIC8vIFRyYXZl
cnNhbCBoZWxwZXJzCiAKK25hbWVzcGFjZSBSZW5kZXJPYmplY3RUcmF2ZXJzYWwgeworCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4KK2lubGluZSBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQoVSYgb2Jq
ZWN0KQoreworICAgIHJldHVybiBvYmplY3QuZmlyc3RDaGlsZCgpOworfQorCitpbmxpbmUgUmVu
ZGVyT2JqZWN0KiBmaXJzdENoaWxkKFJlbmRlck9iamVjdCYgb2JqZWN0KQoreworICAgIHJldHVy
biBvYmplY3QuZmlyc3RDaGlsZFNsb3coKTsKK30KKworaW5saW5lIFJlbmRlck9iamVjdCogZmly
c3RDaGlsZChSZW5kZXJUZXh0JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworaW5saW5l
IFJlbmRlck9iamVjdCogbmV4dEFuY2VzdG9yU2libGluZyhSZW5kZXJPYmplY3QmIGN1cnJlbnQs
IGNvbnN0IFJlbmRlck9iamVjdCogc3RheVdpdGhpbikKK3sKKyAgICBmb3IgKGF1dG8qIGFuY2Vz
dG9yID0gY3VycmVudC5wYXJlbnQoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBh
cmVudCgpKSB7CisgICAgICAgIGlmIChhbmNlc3RvciA9PSBzdGF5V2l0aGluKQorICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGlmIChhdXRvKiBzaWJsaW5nID0gYW5jZXN0b3It
Pm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gc2libGluZzsKKyAgICB9CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBVPgoraW5saW5lIFJlbmRl
ck9iamVjdCogbmV4dChVJiBjdXJyZW50LCBjb25zdCBSZW5kZXJPYmplY3QqIHN0YXlXaXRoaW4p
Cit7CisgICAgaWYgKGF1dG8qIGNoaWxkID0gZmlyc3RDaGlsZChjdXJyZW50KSkKKyAgICAgICAg
cmV0dXJuIGNoaWxkOworCisgICAgaWYgKCZjdXJyZW50ID09IHN0YXlXaXRoaW4pCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgaWYgKGF1dG8qIHNpYmxpbmcgPSBjdXJyZW50Lm5leHRT
aWJsaW5nKCkpCisgICAgICAgIHJldHVybiBzaWJsaW5nOworCisgICAgcmV0dXJuIG5leHRBbmNl
c3RvclNpYmxpbmcoY3VycmVudCwgc3RheVdpdGhpbik7Cit9CisKK30KKwogbmFtZXNwYWNlIFJl
bmRlclRyYXZlcnNhbCB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogaW5s
aW5lIFQqIGZpcnN0Q2hpbGQoVSYgY3VycmVudCkKIHsKLSAgICBSZW5kZXJPYmplY3QqIG9iamVj
dCA9IGN1cnJlbnQuZmlyc3RDaGlsZCgpOworICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gUmVu
ZGVyT2JqZWN0VHJhdmVyc2FsOjpmaXJzdENoaWxkKGN1cnJlbnQpOwogICAgIHdoaWxlIChvYmpl
Y3QgJiYgIWlzUmVuZGVyZXJPZlR5cGU8VD4oKm9iamVjdCkpCiAgICAgICAgIG9iamVjdCA9IG9i
amVjdC0+bmV4dFNpYmxpbmcoKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG9iamVjdCk7
CkBAIC0xMjYsNiArMTc0LDI0IEBAIGlubGluZSBUKiBmaW5kQW5jZXN0b3JPZlR5cGUoY29uc3Qg
UmVuZGVyT2JqZWN0JiBjdXJyZW50KQogICAgIHJldHVybiBudWxscHRyOwogfQogCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK2lubGluZSBUKiBmaXJzdFdpdGhpbihVJiBjdXJy
ZW50KQoreworICAgIGF1dG8qIGRlc2NlbmRhbnQgPSBSZW5kZXJPYmplY3RUcmF2ZXJzYWw6OmZp
cnN0Q2hpbGQoY3VycmVudCk7CisgICAgd2hpbGUgKGRlc2NlbmRhbnQgJiYgIWlzUmVuZGVyZXJP
ZlR5cGU8VD4oKmRlc2NlbmRhbnQpKQorICAgICAgICBkZXNjZW5kYW50ID0gUmVuZGVyT2JqZWN0
VHJhdmVyc2FsOjpuZXh0KCpkZXNjZW5kYW50LCAmY3VycmVudCk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFQqPihkZXNjZW5kYW50KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+CitpbmxpbmUgVCogbmV4dChVJiBjdXJyZW50LCBjb25zdCBSZW5kZXJPYmplY3QqIHN0
YXlXaXRoaW4pCit7CisgICAgYXV0byogZGVzY2VuZGFudCA9IFJlbmRlck9iamVjdFRyYXZlcnNh
bDo6bmV4dChjdXJyZW50LCBzdGF5V2l0aGluKTsKKyAgICB3aGlsZSAoZGVzY2VuZGFudCAmJiAh
aXNSZW5kZXJlck9mVHlwZTxUPigqZGVzY2VuZGFudCkpCisgICAgICAgIGRlc2NlbmRhbnQgPSBS
ZW5kZXJPYmplY3RUcmF2ZXJzYWw6Om5leHQoKmRlc2NlbmRhbnQsIHN0YXlXaXRoaW4pOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxUKj4oZGVzY2VuZGFudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbAogCiAvLyBSZW5kZXJJdGVyYXRvcgpAQCAtMTUzLDYg
KzIxOSwxNCBAQCBpbmxpbmUgUmVuZGVySXRlcmF0b3I8VD4mIFJlbmRlckl0ZXJhdG9yPFQ+Ojp0
cmF2ZXJzZU5leHRTaWJsaW5nKCkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUg
UmVuZGVySXRlcmF0b3I8VD4mIFJlbmRlckl0ZXJhdG9yPFQ+Ojp0cmF2ZXJzZU5leHQoKQorewor
ICAgIEFTU0VSVChtX2N1cnJlbnQpOworICAgIG1fY3VycmVudCA9IFJlbmRlclRyYXZlcnNhbDo6
bmV4dDxUPigqbV9jdXJyZW50LCBtX3Jvb3QpOworICAgIHJldHVybiAqdGhpczsKK30KKwordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxpbmUgUmVuZGVySXRlcmF0b3I8VD4mIFJlbmRlckl0ZXJh
dG9yPFQ+Ojp0cmF2ZXJzZVByZXZpb3VzU2libGluZygpCiB7CiAgICAgQVNTRVJUKG1fY3VycmVu
dCk7CkBAIC0yMjEsNiArMjk1LDE0IEBAIGlubGluZSBSZW5kZXJDb25zdEl0ZXJhdG9yPFQ+JiBS
ZW5kZXJDb25zdEl0ZXJhdG9yPFQ+Ojp0cmF2ZXJzZU5leHRTaWJsaW5nKCkKIH0KIAogdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVuZGVyQ29uc3RJdGVyYXRvcjxUPiYgUmVuZGVyQ29u
c3RJdGVyYXRvcjxUPjo6dHJhdmVyc2VOZXh0KCkKK3sKKyAgICBBU1NFUlQobV9jdXJyZW50KTsK
KyAgICBtX2N1cnJlbnQgPSBSZW5kZXJUcmF2ZXJzYWw6Om5leHQ8VD4oKm1fY3VycmVudCwgbV9y
b290KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5s
aW5lIFJlbmRlckNvbnN0SXRlcmF0b3I8VD4mIFJlbmRlckNvbnN0SXRlcmF0b3I8VD46OnRyYXZl
cnNlUHJldmlvdXNTaWJsaW5nKCkKIHsKICAgICBBU1NFUlQobV9jdXJyZW50KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>