LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAqgKgogKiBDb250cmlidXRvcnM6CiAqICAgIElCTSBDb3Jwb3JhdGlvbiAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KcGFja2FnZSBvcmcuZWNsaXBzZS53c3Quc2VydmVyLnVpLmludGVybmFsOwoKaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7Ci8qKgogKiBUcmFuc2xhdGVkIG1lc3NhZ2VzLgogKi8KcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JBZGREZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yVmVyc2lvbkxldmVsOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgbG9hZGluZ1Rhc2s7CglwdWJsaWMgc3RhdGljIFN0cmluZyBjcmVhdGVTZXJ2ZXJQcm9qZWN0RGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlZmF1bHRTZXJ2ZXJQcm9qZWN0TmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHRlcm1pbmF0ZVNlcnZlckRpYWxvZ01lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb25pdG9yUG9ydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlclJlc291cmNlRGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlclJlc291cmNlRGlhbG9nTWVzc2FnZU1hbnk7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkZWxldGVTZXJ2ZXJSZXNvdXJjZURpYWxvZ0xvb3NlQ29uZmlndXJhdGlvbnM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkZWxldGVTZXJ2ZXJSZXNvdXJjZURpYWxvZ0xvb3NlQ29uZmlndXJhdGlvbnNNYW55OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JDb3VsZE5vdENyZWF0ZVNlcnZlclByb2plY3RTdGF0dXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dTdG9wcGluZ1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNhdmluZ1Rhc2s7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JTYXZlRXJyb3JEaWFsb2c7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JTYXZlRXJyb3JNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVhZE9ubHlGaWxlczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yRWRpdG9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yVW5kb0Rpc2FibGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yVW5kb0VuYWJsZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWRvRGlzYWJsZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWRvRW5hYmxlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlc291cmNlRGVsZXRlVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZURlbGV0ZVNlcnZlck1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZURlbGV0ZVNhdmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyByZXNvdXJjZURpcnR5RGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelNlbGVjdENsaWVudFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6U2VsZWN0Q2xpZW50RGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyByZXNvdXJjZURpcnR5RGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyByZXNvdXJjZURpcnR5RGlhbG9nQ29udGludWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdSdW50aW1lV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJMYXVuY2hEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckxhdW5jaFNlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckxhdW5jaEhvc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJMYXVuY2hSdW50aW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JOb1NlcnZlclNlbGVjdGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JTZXJ2ZXJBbHJlYWR5UnVubmluZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9ySW52YWxpZFNlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckxhdW5jaENvbmZpZ3VyYXRpb25UYWI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpTZWxlY3RDbGllbnRNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGVsZXRlU2VydmVyUmVzb3VyY2VEaWFsb2dUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yQ291bGROb3RDcmVhdGVTZXJ2ZXJQcm9qZWN0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JEaWFsb2dUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclZhbGlkYXRlRWRpdEZhaWx1cmVNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3REZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZQcm9qZWN0Tm90TW9kdWxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmUHJvamVjdERlZmF1bHRTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmUHJvamVjdE5vdENvbmZpZ3VyZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmUHJvamVjdE5vU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JDb3VsZE5vdFNhdmVQcmVmZXJlbmNlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZmVyZW5jZVJ1bnRpbWVzRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBhZGQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcmVtb3ZlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VhcmNoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nUnVudGltZVNlYXJjaE1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dSdW50aW1lU2VhcmNoVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dSdW50aW1lU2VhcmNoUHJvZ3Jlc3M7CglwdWJsaWMgc3RhdGljIFN0cmluZyBpbmZvTm9SdW50aW1lc0ZvdW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6RWRpdFJ1bnRpbWVXaXphcmRUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZlcmVuY2VSdW50aW1lc1RhYmxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nUnVudGltZUluVXNlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGVmYXVsdERpYWxvZ1RpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZmVyZW5jZVJ1bnRpbWVzVGl0bGVMb25nOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcnVudGltZVRhcmdldENvbWJvOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcnVudGltZVRhcmdldE5vbmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBydW50aW1lVGFyZ2V0TmV3UnVudGltZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUYXJnZXRDaGlsZHJlbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUYXJnZXRSdW50aW1lUHJlZmVyZW5jZXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1B1Ymxpc2g7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1B1Ymxpc2hMb2NhbDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZBdXRvUHVibGlzaFNlY29uZHM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1B1Ymxpc2hSZW1vdGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1Jlc3RhcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmUHJvbXB0SXJyZXZlcnNpYmxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlNob3dPbkFjdGl2aXR5OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlNhdmVFZGl0b3JzR3JvdXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmU2F2ZUVkaXRvcnNOZXZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZTYXZlRWRpdG9yc1Byb21wdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZTYXZlRWRpdG9yc0F1dG9zYXZlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZk1hY2hpbmVTcGVlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZNYWNoaW5lU3BlZWRWZXJ5U2xvdzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZNYWNoaW5lU3BlZWRTbG93OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZk1hY2hpbmVTcGVlZEF2ZXJhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmTWFjaGluZVNwZWVkRmFzdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZNYWNoaW5lU3BlZWRWZXJ5RmFzdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk5ldzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk5ld1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbkRlYnVnVG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbkRlYnVnOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uU3RhcnRUb29sVGlwOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uU3RhcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Qcm9maWxlVG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblByb2ZpbGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25SZXN0YXJ0VG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblJlc3RhcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25QdWJsaXNoVG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblB1Ymxpc2g7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25EZWxldGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB0ZXJtaW5hdGVTZXJ2ZXJEaWFsb2dUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbkRlYnVnT25TZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Qcm9maWxlT25TZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25SdW5PblNlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblVwZGF0ZVN0YXR1czsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk1vdmVTZXJ2ZXJUb01ldGFkYXRhOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uTW92ZVNlcnZlclRvV29ya3NwYWNlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgam9iVXBkYXRlU3RhdHVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nQWRkUmVtb3ZlTW9kdWxlc05vbmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25TZXROZXdTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvck5vTW9kdWxlczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vZGVXYXJuaW5nRGVidWc7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb2RlV2FybmluZ1Byb2ZpbGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvck5vU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JOb0NsaWVudDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vZGVXYXJuaW5nUmVzdGFydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vZGVXYXJuaW5nQ29udGludWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBob3N0bmFtZVRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgaG9zdG5hbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZURlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZUF2YWlsYWJsZUxpc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVEZXBsb3llZExpc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVBZGQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVSZW1vdmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVBZGRBbGw7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVSZW1vdmVBbGw7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpUYXNrVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpUYXNrRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpUYXNrTm9uZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekVycm9ySW52YWxpZEZvbGRlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekVycm9yQ2xvc2VkUHJvamVjdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGNyZWF0ZVNlcnZlclByb2plY3REaWFsb2dUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlclRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJTZWxlY3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJNYW51YWw7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpTZWxlY3RTZXJ2ZXJQcmVmZXJyZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJFeGlzdGluZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekltcG9ydENvbmZpZ3VyYXRpb25UaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekltcG9ydENvbmZpZ3VyYXRpb25EZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlclJ1bnRpbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpFcnJvclNlcnZlckNyZWF0aW9uRXJyb3I7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpSdW5PblNlcnZlclRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6RGVidWdPblNlcnZlclRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6UHJvZmlsZU9uU2VydmVyVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdSdW50aW1lVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdSdW50aW1lRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBwZXJmb3JtaW5nVGFza3M7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpJbXBvcnRDb25maWd1cmF0aW9uV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVXaXphcmRUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlcldpemFyZFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6U2VsZWN0Q2xpZW50V2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpUYXNrV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3Qnk7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb2x1bW5TdGF0dXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29sdW1uVHlwZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb2x1bW5Qb3J0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbHVtbk1vbml0b3JQb3J0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbHVtbkNvbnRlbnRUeXBlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc3RhcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzdG9wOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvclRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvck1vbml0b3JQb3J0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbnRlbnRUeXBlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbnRlbnRUeXBlQWxsOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc3RhcnRlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHN0b3BwZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29udGVudFR5cGVXZWI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29udGVudFR5cGVXZWJTZXJ2aWNlczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGNvbHVtbk5hbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBjb2x1bW5UeXBlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcnVudGltZVR5cGVDb21wVHJlZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUeXBlQ29tcERlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgbmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZlbmRvcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZlcnNpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBtb2R1bGVTdXBwb3J0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyU2VsZWN0RXhpc3Rpbmc7CglwdWJsaWMgc3RhdGljIFN0cmluZyBob3N0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWxlbWVudFVua25vd25OYW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyVHlwZUNvbXBEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTZXJ2ZXJzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld05vTW9kdWxlczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk1vbml0b3JQcm9wZXJ0aWVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uT3BlbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25TdG9wVG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0b3A7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb2RpZnlNb2R1bGVzVG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk1vZGlmeU1vZHVsZXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb25pdG9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNPa2F5OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNSZXN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNQdWJsaXNoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNSZXN0YXJ0UHVibGlzaDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUHVibGlzaGluZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jT2theTI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1Jlc3RhcnQyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNQdWJsaXNoMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUmVzdGFydFB1Ymxpc2gyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNQdWJsaXNoaW5nMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclNlcnZlckVkaXRvcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclByb21wdElycmV2ZXJzaWJsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yRWRpdG9yQ2FudFNhdmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWFkT25seTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvcldyaXRhYmxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVzb3VyY2VNb2RpZmllZFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVhZE9ubHlNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yU2VydmVyTW9kaWZpZWRNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVzb3VyY2VXYXJuVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZVdhcm5NZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdQYWdlVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlY3Rpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0Rlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdTZXJ2ZXJOYW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdTZXJ2ZXJIb3N0bmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3UnVudGltZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3UnVudGltZUVkaXQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlckNvbmZpZ3VyYXRpb25QYXRoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdQdWJsaXNoaW5nOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdBdXRvUHVibGlzaERlZmF1bHQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0F1dG9QdWJsaXNoT3ZlcnJpZGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0F1dG9QdWJsaXNoRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0F1dG9QdWJsaXNoQ29tbWFuZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3U2VydmVySG9zdG5hbWVEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3U2VydmVySG9zdG5hbWVDb21tYW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdTZXJ2ZXJOYW1lRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlck5hbWVDb21tYW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdSdW50aW1lRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1J1bnRpbWVDb21tYW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdPcGVuTGF1bmNoQ29uZmlndXJhdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGluZzQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRlZDI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RvcHBpbmc0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0b3BwZWQyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0aW5nMTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGluZzI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRpbmczOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0b3BwaW5nMTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdG9wcGluZzI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RvcHBpbmczOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0ZWREZWJ1ZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGVkUHJvZmlsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0b3BwZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25TdG9wVG9vbFRpcDI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25TdG9wMjsKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JTdGFydGluZ01vbml0b3I7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhdWRpb1ByZWZTZWxlY3RGaWxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmRW5hYmxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmVm9sdW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmU291bmRzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmU291bmQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhdWRpb1ByZWZGaWxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmUGxheTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZkJyb3dzZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlJlc2V0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9Vbmtub3duOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9Ob25lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9EZWZhdWx0OwoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmZXJlbmNlSW50ZXJuZXREZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGludGVybmFsV2ViQnJvd3Nlck5hbWU7CgoJc3RhdGljIHsKCQlOTFMuaW5pdGlhbGl6ZU1lc3NhZ2VzKFNlcnZlclVJUGx1Z2luLlBMVUdJTl9JRCArICIuaW50ZXJuYWwuTWVzc2FnZXMiLCBNZXNzYWdlcy5jbGFzcyk7Cgl9Cn0=