<?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>128441</bug_id>
          
          <creation_ts>2014-02-07 22:13:13 -0800</creation_ts>
          <short_desc>Split UserTriggered into FireSelectEvent and RevealSelection for selection options</short_desc>
          <delta_ts>2014-02-08 13:35:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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>127832</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978284</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-07 22:13:13 -0800</bug_when>
    <thetext>Right now a lot of functions call setSelection with UserTriggered and DoNotRevealSelection
in order to let select event fire without revealing selection.

We should split UserTriggered into FireSelectEvent and RevealSelection instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978288</commentid>
    <comment_count>1</comment_count>
      <attachid>223550</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-07 22:20:56 -0800</bug_when>
    <thetext>Created attachment 223550
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978419</commentid>
    <comment_count>2</comment_count>
      <attachid>223550</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-08 13:35:35 -0800</bug_when>
    <thetext>Comment on attachment 223550
Cleanup

Clearing flags on attachment: 223550

Committed r163721: &lt;http://trac.webkit.org/changeset/163721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978420</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-08 13:35:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223550</attachid>
            <date>2014-02-07 22:20:56 -0800</date>
            <delta_ts>2014-02-08 13:35:35 -0800</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-128441-20140207222055.patch</filename>
            <type>text/plain</type>
            <size>18541</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzY5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE0LTAyLTA3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFNwbGl0IFVzZXJUcmlnZ2VyZWQg
aW50byBGaXJlU2VsZWN0RXZlbnQgYW5kIFJldmVhbFNlbGVjdGlvbiBmb3Igc2VsZWN0aW9uIG9w
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
ODQ0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNw
bGl0IFVzZXJUcmlnZ2VyZWQgYnkgRmlyZVNlbGVjdEV2ZW50IGFuZCBSZXZlYWxTZWxlY3Rpb24g
Zm9yIHNlbGVjdGlvbiBvcHRpb25zLgorCisgICAgICAgIEFsc28gYWRkZWQgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSB0byBhYnN0cmFjdCBhd2F5IHRoZSBkZWZhdWx0IG9wdGlvbnMuCisK
KyAgICAgICAgKiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6cmVzcG9uZFRvVW5hcHBsaWVk
U3BlbGxDb3JyZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpyZWFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZl
cmVudCk6IFVzZXJUcmlnZ2VyZWQgfCBEb05vdFJldmVhbFNlbGVjdGlvbgorICAgICAgICBpcyBy
ZXBsYWNlZCBieSBGaXJlU2VsZWN0RXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6IENoZWNrIG9wdGlv
bnMgJiBGaXJlU2VsZWN0RXZlbnQKKyAgICAgICAgaW5zdGVhZCBvZiBvcHRpb25zICYgVXNlclRy
aWdnZXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24p
OiBDaGVjayBvcHRpb25zICYgUmV2ZWFsU2VsZWN0aW9uIGluc3RlYWQgb2YKKyAgICAgICAgb3B0
aW9ucyAmIFVzZXJUcmlnZ2VyZWQgJiYgIShvcHRpb25zICYgRG9Ob3RSZXZlYWxTZWxlY3Rpb24p
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0QmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0RXh0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyk6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVs
bGluZ0NvcnJlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZWxlY3Rpb25DaGFuZ2VkKTogUmVuYW1lZCB0aGUgYXJndW1lbnQuCisg
ICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorCiAyMDE0LTAyLTA3
ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgW0FTYW5dIFVz
ZSBuZXcvZGVsZXRlIGluIFBPREZyZWVMaXN0QXJlbmEKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
MTYzNjkwKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlcjo6cmVzcG9uZFQKICAgICBpZiAoQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
KiBjbGllbnQgPSBhbHRlcm5hdGl2ZVRleHRDbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5yZWNv
cmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmV2ZXJ0ZWQsIGNvcnJlY3Rl
ZCwgY29ycmVjdGlvbik7CiAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsK
LSAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihzZWxlY3Rpb25PZkNvcnJlY3Rl
ZCwgRnJhbWVTZWxlY3Rpb246OkNsb3NlVHlwaW5nIHwgRnJhbWVTZWxlY3Rpb246OkNsZWFyVHlw
aW5nU3R5bGUgfCBGcmFtZVNlbGVjdGlvbjo6U3BlbGxDb3JyZWN0aW9uVHJpZ2dlcmVkKTsKKyAg
ICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihzZWxlY3Rpb25PZkNvcnJlY3RlZCwg
RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGcmFtZVNlbGVj
dGlvbjo6U3BlbGxDb3JyZWN0aW9uVHJpZ2dlcmVkKTsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdl
ID0gUmFuZ2U6OmNyZWF0ZSgqbV9mcmFtZS5kb2N1bWVudCgpLCBtX2ZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLnN0YXJ0KCksIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuZW5k
KCkpOwogCiAgICAgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyJiBtYXJrZXJzID0gbV9mcmFtZS5k
b2N1bWVudCgpLT5tYXJrZXJzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShy
ZXZpc2lvbiAxNjM2OTApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExMDIsNyArMTEwMiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRF
ZGl0aW5nKFBhc3NSZWZQdHIKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwogCiAgICAg
VmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVjdGlvbigpKTsK
LSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6Q2xvc2VUeXBpbmcgfCBGcmFtZVNlbGVjdGlvbjo6Q2xlYXJUeXBpbmdTdHlsZSk7Cisg
ICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVD
b250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBj
bWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICBtX2FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXItPnJlc3BvbmRUb1VuYXBwbGllZEVkaXRpbmcoY21kLmdldCgpKTsKQEAgLTEx
MTgsNyArMTExOCw3IEBAIHZvaWQgRWRpdG9yOjpyZWFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHIK
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24oY21kLT5lbmRpbmdTZWxlY3Rpb24oKSk7Ci0gICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OkNsb3NlVHlwaW5nIHwg
RnJhbWVTZWxlY3Rpb246OkNsZWFyVHlwaW5nU3R5bGUpOworICAgIGNoYW5nZVNlbGVjdGlvbkFm
dGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMo
Y21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFi
bGVFbGVtZW50KCkpOwogCiAgICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOwpJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDE2MzY5MikKKysr
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzUsMzUgKzEzNSwzMSBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRh
YmxlRWxlCiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRp
b24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9s
bCBhbGlnbikKIHsKLSAgICBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBDbG9zZVR5cGlu
ZyB8IENsZWFyVHlwaW5nU3R5bGUgfCB1c2VyVHJpZ2dlcmVkOwotICAgIHNldFNlbGVjdGlvbihW
aXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQo
KSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIG9wdGlvbnMs
IGFsaWduKTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlv
bi5pc0RpcmVjdGlvbmFsKCkpLAorICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1
c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVu
dCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKICAgICBjb25zdCBib29sIHNlbGVj
dGlvbkhhc0RpcmVjdGlvbiA9IHRydWU7Ci0gICAgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
ID0gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgdXNlclRyaWdnZXJlZDsKLSAgICBz
ZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihiYXNlLmRlZXBFcXVpdmFsZW50KCksIGV4dGVu
dC5kZWVwRXF1aXZhbGVudCgpLCBiYXNlLmFmZmluaXR5KCksIHNlbGVjdGlvbkhhc0RpcmVjdGlv
biksIG9wdGlvbnMpOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKGJhc2UuZGVl
cEVxdWl2YWxlbnQoKSwgZXh0ZW50LmRlZXBFcXVpdmFsZW50KCksIGJhc2UuYWZmaW5pdHkoKSwg
c2VsZWN0aW9uSGFzRGlyZWN0aW9uKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRy
aWdnZXJlZCkpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgUG9zaXRp
b24gJnBvcywgRUFmZmluaXR5IGFmZmluaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVk
KQogewotICAgIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IENsb3NlVHlwaW5nIHwgQ2xl
YXJUeXBpbmdTdHlsZSB8IHVzZXJUcmlnZ2VyZWQ7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24ocG9zLCBhZmZpbml0eSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgb3B0
aW9ucyk7CisgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLCBhZmZpbml0eSwg
bV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
dXNlclRyaWdnZXJlZCkpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3Qg
UmFuZ2UgKnIsIEVBZmZpbml0eSBhZmZpbml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJl
ZCkKIHsKLSAgICBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBDbG9zZVR5cGluZyB8IENs
ZWFyVHlwaW5nU3R5bGUgfCB1c2VyVHJpZ2dlcmVkOwogICAgIFZpc2libGVTZWxlY3Rpb24gc2Vs
ZWN0aW9uID0gciA/IFZpc2libGVTZWxlY3Rpb24oci0+c3RhcnRQb3NpdGlvbigpLCByLT5lbmRQ
b3NpdGlvbigpLCBhZmZpbml0eSkgOiBWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKCksIFBvc2l0
aW9uKCksIGFmZmluaXR5KTsKLSAgICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsK
KyAgICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1
c2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBQ
b3NpdGlvbiAmYmFzZSwgY29uc3QgUG9zaXRpb24gJmV4dGVudCwgRUFmZmluaXR5IGFmZmluaXR5
LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewogICAgIGNvbnN0IGJvb2wgc2VsZWN0
aW9uSGFzRGlyZWN0aW9uID0gdHJ1ZTsKLSAgICBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMg
PSBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCB1c2VyVHJpZ2dlcmVkOwotICAgIHNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKGJhc2UsIGV4dGVudCwgYWZmaW5pdHksIHNlbGVj
dGlvbkhhc0RpcmVjdGlvbiksIG9wdGlvbnMpOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2Vs
ZWN0aW9uKGJhc2UsIGV4dGVudCwgYWZmaW5pdHksIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiksIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpKTsKIH0KIAogdm9pZCBEcmFn
Q2FyZXRDb250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCkBAIC0yNDcsMTAgKzI0MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25CeU1vdXNlCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAh
c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIFVzZXJUcmlnZ2VyZWQgfCBEb05vdFJldmVh
bFNlbGVjdGlvbiB8IENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxp
Z25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKLWJvb2wgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRH
cmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKK2Jv
b2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0
aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxp
Z24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBib29sIGNsb3NlVHlwaW5n
ID0gb3B0aW9ucyAmIENsb3NlVHlwaW5nOwogICAgIGJvb2wgc2hvdWxkQ2xlYXJUeXBpbmdTdHls
ZSA9IG9wdGlvbnMgJiBDbGVhclR5cGluZ1N0eWxlOwpAQCAtMjk3LDcgKzI5Myw3IEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXQKIAogICAgIC8vIFNlbGVjdGlvbiBv
ZmZzZXRzIHNob3VsZCBpbmNyZWFzZSB3aGVuIExGIGlzIGluc2VydGVkIGJlZm9yZSB0aGUgY2Fy
ZXQgaW4gSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC4gU2VlIDxodHRwczovL3dlYmtpdC5vcmcvYi81
NjA2MT4uCiAgICAgaWYgKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiB0ZXh0Q29udHJvbCA9
IGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChuZXdTZWxlY3Rpb24uc3RhcnQoKSkpCi0gICAgICAg
IHRleHRDb250cm9sLT5zZWxlY3Rpb25DaGFuZ2VkKHVzZXJUcmlnZ2VyZWQgPT0gVXNlclRyaWdn
ZXJlZCk7CisgICAgICAgIHRleHRDb250cm9sLT5zZWxlY3Rpb25DaGFuZ2VkKG9wdGlvbnMgJiBG
aXJlU2VsZWN0RXZlbnQpOwogCiAgICAgaWYgKG9sZFNlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24p
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMxOSw4ICszMTUsNyBAQCBib29sIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQogewotICAgIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQgPSBzZWxl
Y3Rpb25PcHRpb25zVG9Vc2VyVHJpZ2dlcmVkKG9wdGlvbnMpOwotICAgIGlmICghc2V0U2VsZWN0
aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBn
cmFudWxhcml0eSwgdXNlclRyaWdnZXJlZCkpCisgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5
KSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCkBAIC0zMzAsNyAr
MzI1LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IAogI2VuZGlm
CiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogCi0gICAgaWYgKHVzZXJUcmlnZ2VyZWQgPT0gVXNl
clRyaWdnZXJlZCAmJiAhKG9wdGlvbnMgJiBEb05vdFJldmVhbFNlbGVjdGlvbikpIHsKKyAgICBp
ZiAob3B0aW9ucyAmIFJldmVhbFNlbGVjdGlvbikgewogICAgICAgICBTY3JvbGxBbGlnbm1lbnQg
YWxpZ25tZW50OwogCiAgICAgICAgIGlmIChtX2ZyYW1lLT5lZGl0b3IoKS5iZWhhdmlvcigpLnNo
b3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklzUmV2ZWFsZWQoKSkKQEAgLTEyNDMsOCArMTIz
OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGkKICAgICBpZiAo
dmlldykKICAgICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIAotICAgIHNldFNlbGVjdGlv
bldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoVmlzaWJsZVNlbGVjdGlvbigpLCBDbG9zZVR5cGlu
ZyB8IENsZWFyVHlwaW5nU3R5bGUsCi0gICAgICAgIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRl
ZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHksIE5vdFVzZXJUcmlnZ2VyZWQpOworICAgIHNldFNlbGVj
dGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoVmlzaWJsZVNlbGVjdGlvbigpLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIENoYXJh
Y3RlckdyYW51bGFyaXR5KTsKICAgICBtX3ByZXZpb3VzQ2FyZXROb2RlLmNsZWFyKCk7CiB9CiAK
QEAgLTEyNjcsMjUgKzEyNjEsMjUgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0RW5kKGNvbnN0
IFZpc2libAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0QmFzZShjb25zdCBWaXNpYmxlUG9zaXRp
b24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKICAgICBjb25zdCBib29s
IHNlbGVjdGlvbkhhc0RpcmVjdGlvbiA9IHRydWU7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIG1fc2VsZWN0aW9uLmV4dGVudCgpLCBwb3Mu
YWZmaW5pdHkoKSwgc2VsZWN0aW9uSGFzRGlyZWN0aW9uKSwgQ2xvc2VUeXBpbmcgfCBDbGVhclR5
cGluZ1N0eWxlIHwgdXNlclRyaWdnZXJlZCk7CisgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxl
Y3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIG1fc2VsZWN0aW9uLmV4dGVudCgpLCBwb3MuYWZm
aW5pdHkoKSwgc2VsZWN0aW9uSGFzRGlyZWN0aW9uKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnModXNlclRyaWdnZXJlZCkpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRFeHRlbnQo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQp
CiB7CiAgICAgY29uc3QgYm9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24gPSB0cnVlOwotICAgIHNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKG1fc2VsZWN0aW9uLmJhc2UoKSwgcG9zLmRlZXBF
cXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24pLCBDbG9z
ZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCB1c2VyVHJpZ2dlcmVkKTsKKyAgICBzZXRTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbihtX3NlbGVjdGlvbi5iYXNlKCksIHBvcy5kZWVwRXF1aXZh
bGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgc2VsZWN0aW9uSGFzRGlyZWN0aW9uKSwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCkpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRCYXNlKGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBhZmZpbml0eSwgRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKICAgICBjb25zdCBib29sIHNlbGVjdGlvbkhh
c0RpcmVjdGlvbiA9IHRydWU7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9z
LCBtX3NlbGVjdGlvbi5leHRlbnQoKSwgYWZmaW5pdHksIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiks
IENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8IHVzZXJUcmlnZ2VyZWQpOworICAgIHNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcywgbV9zZWxlY3Rpb24uZXh0ZW50KCksIGFm
ZmluaXR5LCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24pLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cyh1c2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEV4dGVudChj
b25zdCBQb3NpdGlvbiAmcG9zLCBFQWZmaW5pdHkgYWZmaW5pdHksIEVVc2VyVHJpZ2dlcmVkIHVz
ZXJUcmlnZ2VyZWQpCiB7CiAgICAgY29uc3QgYm9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24gPSB0
cnVlOwotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKG1fc2VsZWN0aW9uLmJhc2Uo
KSwgcG9zLCBhZmZpbml0eSwgc2VsZWN0aW9uSGFzRGlyZWN0aW9uKSwgQ2xvc2VUeXBpbmcgfCBD
bGVhclR5cGluZ1N0eWxlIHwgdXNlclRyaWdnZXJlZCk7CisgICAgc2V0U2VsZWN0aW9uKFZpc2li
bGVTZWxlY3Rpb24obV9zZWxlY3Rpb24uYmFzZSgpLCBwb3MsIGFmZmluaXR5LCBzZWxlY3Rpb25I
YXNEaXJlY3Rpb24pLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSk7
CiB9CiAKIHZvaWQgQ2FyZXRCYXNlOjpjbGVhckNhcmV0UmVjdCgpCkBAIC0xNzA2LDcgKzE3MDAs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogICAgIFZpc2libGVTZWxlY3Rp
b24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09m
Tm9kZShyb290LmdldCgpKSk7CiAKICAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIFVzZXJUcmlnZ2Vy
ZWQgfCBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCBEb05vdFJldmVhbFNlbGVjdGlv
bik7CisgICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29s
IGNsb3NlVHlwaW5nKQpAQCAtMjQyMiw3ICsyNDE2LDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFt
ZVNlbGVjdGlvbjo6d29yZFNlbAogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24g
PSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNp
bmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9uLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSwgQWxp
Z25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsK
KyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2Vs
ZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxl
Y3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmgJKHJldmlzaW9uIDE2MzY5MCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDE4ICsxMTgsMTggQEAg
cHVibGljOgogICAgIGVudW0gQ3Vyc29yQWxpZ25PblNjcm9sbCB7IEFsaWduQ3Vyc29yT25TY3Jv
bGxJZk5lZWRlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGlnbkN1cnNvck9u
U2Nyb2xsQWx3YXlzIH07CiAgICAgZW51bSBTZXRTZWxlY3Rpb25PcHRpb24gewotICAgICAgICAv
LyAxIDw8IDAgaXMgcmVzZXJ2ZWQgZm9yIEVVc2VyVHJpZ2dlcmVkCisgICAgICAgIEZpcmVTZWxl
Y3RFdmVudCA9IDEgPDwgMCwKICAgICAgICAgQ2xvc2VUeXBpbmcgPSAxIDw8IDEsCiAgICAgICAg
IENsZWFyVHlwaW5nU3R5bGUgPSAxIDw8IDIsCiAgICAgICAgIFNwZWxsQ29ycmVjdGlvblRyaWdn
ZXJlZCA9IDEgPDwgMywKICAgICAgICAgRG9Ob3RTZXRGb2N1cyA9IDEgPDwgNCwKICAgICAgICAg
RGljdGF0aW9uVHJpZ2dlcmVkID0gMSA8PCA1LAotICAgICAgICBEb05vdFJldmVhbFNlbGVjdGlv
biA9IDEgPDwgNiwKKyAgICAgICAgUmV2ZWFsU2VsZWN0aW9uID0gMSA8PCA2LAogICAgIH07CiAg
ICAgdHlwZWRlZiB1bnNpZ25lZCBTZXRTZWxlY3Rpb25PcHRpb25zOyAvLyBVbmlvbiBvZiB2YWx1
ZXMgaW4gU2V0U2VsZWN0aW9uT3B0aW9uIGFuZCBFVXNlclRyaWdnZXJlZAotICAgIHN0YXRpYyBp
bmxpbmUgRVVzZXJUcmlnZ2VyZWQgc2VsZWN0aW9uT3B0aW9uc1RvVXNlclRyaWdnZXJlZChTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCisgICAgc3RhdGljIGlubGluZSBTZXRTZWxlY3Rpb25P
cHRpb25zIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmln
Z2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEVVc2VyVHJpZ2dlcmVkPihvcHRpb25zICYgVXNlclRyaWdnZXJlZCk7CisgICAgICAgIHJl
dHVybiBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChS
ZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQogCiAgICAgZXhw
bGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gMCk7CkBAIC0xNDMsNyArMTQzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgbW92ZVRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBF
QWZmaW5pdHksIEVVc2VyVHJpZ2dlcmVkID0gTm90VXNlclRyaWdnZXJlZCk7CiAKICAgICBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlv
bjsgfQotICAgIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRT
ZWxlY3Rpb25PcHRpb25zID0gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlLCBDdXJzb3JB
bGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJp
dHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElm
TmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgYm9v
bCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsK
ICAgICB2b2lkIHNlbGVjdEFsbCgpOwogICAgIHZvaWQgY2xlYXIoKTsKQEAgLTI3OSw3ICsyNzks
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBF
TkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRp
bmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25z
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkKTsK
KyAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGws
IFRleHRHcmFudWxhcml0eSk7CiAKICAgICB2b2lkIHJlc3BvbmRUb05vZGVNb2RpZmljYXRpb24o
Tm9kZSosIGJvb2wgYmFzZVJlbW92ZWQsIGJvb2wgZXh0ZW50UmVtb3ZlZCwgYm9vbCBzdGFydFJl
bW92ZWQsIGJvb2wgZW5kUmVtb3ZlZCk7CiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb25PZkVu
Y2xvc2luZ0Jsb2NrKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29y
cmVjdGlvbkNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
U3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAJKHJldmlzaW9uIDE2MzY5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQ6
OmRvQXBwbHkoCiAgICAgaWYgKCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoU2V0U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKG1fc2VsZWN0
aW9uVG9CZUNvcnJlY3RlZCwgRnJhbWVTZWxlY3Rpb246OlNwZWxsQ29ycmVjdGlvblRyaWdnZXJl
ZCB8IEZyYW1lU2VsZWN0aW9uOjpDbG9zZVR5cGluZyB8IEZyYW1lU2VsZWN0aW9uOjpDbGVhclR5
cGluZ1N0eWxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoU2V0U2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKG1fc2VsZWN0aW9uVG9CZUNvcnJlY3RlZCwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGcmFtZVNlbGVjdGlvbjo6U3BlbGxDb3JyZWN0
aW9uVHJpZ2dlcmVkKSk7CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQogICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgbV9jb3JyZWN0ZWQsIG1fY29ycmVjdGlvbikpOwogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTYzNjkwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NSw3ICs0NzUsNyBA
QCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpyZXN0b3JlCiAgICAgc2V0U2VsZWN0
aW9uUmFuZ2UobV9jYWNoZWRTZWxlY3Rpb25TdGFydCwgbV9jYWNoZWRTZWxlY3Rpb25FbmQsIG1f
Y2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudDo6c2VsZWN0aW9uQ2hhbmdlZChib29sIHVzZXJUcmlnZ2VyZWQpCit2b2lkIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25DaGFuZ2VkKGJvb2wgc2hvdWxkRmlyZVNl
bGVjdEV2ZW50KQogewogICAgIGlmICghaXNUZXh0Rm9ybUNvbnRyb2woKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtNDgzLDkgKzQ4MywxMiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3RpCiAgICAgLy8gRklYTUU6IERvbid0IHJlLWNvbXB1dGUgc2VsZWN0aW9uIHN0YXJ0
IGFuZCBlbmQgaWYgdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkIGluc2lkZSBzZXRTZWxlY3Rpb25S
YW5nZS4KICAgICAvLyBzZWxlY3Rpb25TdGFydCgpIG9yIHNlbGVjdGlvbkVuZCgpIHdpbGwgcmV0
dXJuIGNhY2hlZCBzZWxlY3Rpb24gd2hlbiB0aGlzIG5vZGUgZG9lc24ndCBoYXZlIGZvY3VzCiAg
ICAgY2FjaGVTZWxlY3Rpb24oY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCksIGNvbXB1dGVTZWxlY3Rp
b25FbmQoKSwgY29tcHV0ZVNlbGVjdGlvbkRpcmVjdGlvbigpKTsKKyAgICAKKyAgICBpZiAoIXNo
b3VsZEZpcmVTZWxlY3RFdmVudCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkgewotICAgICAgICBpZiAoZnJhbWUtPnNlbGVjdGlv
bigpLmlzUmFuZ2UoKSAmJiB1c2VyVHJpZ2dlcmVkKQorICAgICAgICBpZiAoZnJhbWUtPnNlbGVj
dGlvbigpLmlzUmFuZ2UoKSkKICAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuc2VsZWN0RXZlbnQsIHRydWUsIGZhbHNlKSk7CiAgICAgfQogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
aAkocmV2aXNpb24gMTYzNjkwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KiBpbm5lclRleHRFbGVt
ZW50KCkgY29uc3QgPSAwOwogCi0gICAgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKGJvb2wgdXNlclRy
aWdnZXJlZCk7CisgICAgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKGJvb2wgc2hvdWxkRmlyZVNlbGVj
dEV2ZW50KTsKICAgICBib29sIGxhc3RDaGFuZ2VXYXNVc2VyRWRpdCgpIGNvbnN0OwogICAgIHZv
aWQgc2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGlubmVyVGV4
dFZhbHVlKCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>