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CxQOUgEADBQ3UgEADRSlVAEADhTiVAEADxTmVAEAERQAVQEAEhQaVQEAExT1VQEAFBQRVgEAFhQVVgEAFxQeVgEAGBSRVgEAGRSBVwEAGxSUVwEAHBTYVwEAHRQCWAEAHhQzWAEAHxRCWAEAIBRRWAEAIRRmWAEAIhSTWAEAIxS6WAEAJBTFWAEAJRTMWAEAJhTaWAEAJxThWAEAKBTyWAEAKRQRWQEALBREWQEALRRRWQEALhSGWQEANRSgWQEANhTEWQEANxT7WQEAORQ5WgEAOhREWgEAOxRNWgEAPBRYWgEARRRsWgEAURSDWgEAUhShWgEAUxS+WgEAVRTXWgEAVhT8WgEAVxQgWwEAWBROWwEAWRRuWwEAWxSAWwEAXBSRWwEAXRSdWwEAXhTxWwEAXxRmXAEAYBSVXAEAYRT+XAEAYhQsXQEAYxSjXQEAZBSoXQEAZRS3XQEAZhTMXQEAaRRJXgEAahRUXgEAaxRdXgEAbBRgXgEAbRRrXgEAbhR6XgEAbxSBXgEAcBSGXgEAcRSPXgEAchSXXgEAcxSgXgEAdBSlXgEAdRSrXgEAdhSxXgEAdxS2XgEAeBTIXgEAeRTbXgEAehTyXgEAexT9XgEAfBQHXwEAfRQbXwEAfhQnXwEAfxQ2XwEAgBREXwEAgRRIXwEAghRNXwEAgxRnXwEAhBSDXwEAhRSsXwEAhhTpXwEAhxQaYAEAiRQuYAEAihRBYAEAixRMYAEAjBRfYAEAjRRtYAEAjhR7YAEAkBSCYAEAkhSGYAEAkxSNYAEAlBSXYAEAlRSkYAEAlhSvYAEAlxS7YAEAmBTFYAEAmRTMYAEAmhTVYAEAmxTbYAEAnBT3YAEAnRQLYQEAnhQjYQEAnxQxYQEAoBSPYQEAoRSiYQEAohS3YQEAoxTCYQEApBTMYQEApRTfYQEApxTxYQEAqBT6YQEAqRQWYgEAqhQzYgEAqxRPYgEArBRgYgEArRR0YgEArhSpYgEArxS2YgEAsBTEYgEAsRT9YgEAsxQFYwEAtBQdYwEAtRQzYwEAtxQ4YwEAuBRRYwEAuRRXYwEAuhRnYwEAuxRtYwEAvBQfZAEAvRRpZAEAvxRvZAEAwBTXZAEAwxQ1ZQEAxxRUZQEAyBRzZQEAyRSEZQEAyhSZZQEAyxStZQEAzBTEZQEAzRTfZQEAzhTxZQEAzxQSZgEA0BQtZgEA0RQ+ZgEA0hRLZgEA0xRsZgEA1BR+ZgEA1hSQZgEA2RS5ZgEA2hTCZgEA2xTLZgEA3BTVZgEA3RTlZgEA3hT8ZgEA3xQDZwEA4BQLZwEA4RQUZwEA4hQeZwEA4xQmZwEA5BQvZwEA5RQ5ZwEA5hREZwEA5xRNZwEA6BRXZwEA6RRiZwEA6hRuZwEA7BSCZwEA7RSVZwEA7hSuZwEA7xTSZwEA8BQHaAEA8RQhaAEA8hRDaAEA8xRnaAEA9BSTaAEA9RSqaAEA9hTJaAEA9xTkaAEA+BQHaQEA+RQsaQEA+hRZaQEA+xRlaQEA/BS2aQEA/RT3aQEA/hQLagEA/xQ+agEAABVYagEAARWSagEAAhXTagEAAxXoagEABBUeawEABRVUawEABhVdawEADBVjawEADRWDawEAEBXFawEAERUtbAEAExU6bAEAGxVPbAEAHRVrbAEAJBV4bAEAJRWHbAEAKBWabAEAKRWmbAEAKhXkbAEAKxX3bAEALBUCbQEALRUxbQEALhVabQEALxWgbQEAMBXgbQEAMRX6bQEAMhUVbgEAMxU0bgEANBVgbgEANRWAbgEANhW5bgEANxXtbgEAOBUebwEAORUsbwEAOhVYbwEAPRU0cAEAPhVUcAEAPxVgcQEAQRVucQEAQhV0cQEAQxWAcQEARBWMcQEARRWUcQEASBWwcQEASRXAcQEASxXVcQEATBXlcQEAThX8cQEATxUBcgEAUhUFcgEAUxUbcgEAVBUpcgEAVRU6cgEAVhVacgEAVxVkcgEAWBVycgEAWRWqcgEAWhXMcgEAXhUocwEAXxU/cwEAYBVWcwEAaBV9cwEAaRWMcwEAbxXKcwEAdRUcdAEAdhUwdAEAdxU5dAEAeBVWdAEAeRWpdAEAexW0dAEAhBX6dAEAhRUYdQEAhhUudQEAhxVFdQEAiBVfdQEAihWAdQEAixWNdQEAjBWfdQEAjRWrdQEAkBW0dQEAkRW7dQEAkhXIdQEAlBXWdQEAlhXodQEAmBXxdQEAmxX+dQEAnBUNdgEAnRUddgEAoRUudgEAoxU6dgEApRVIdgEAqhVTdgEArRVddgEArxV5dgEAsBVadwEAsRWEdwEAshWRdwEAsxWddwEAtBWodwEAtRW4dwEAthXKdwEAtxXhdwEAuBXpdwEAuRXwdwEAuxUNeAEAvRU8eAEAvhVIeAEAvxVfeAEAwBVveAEAwRWdeAEAwhWreAEAwxXMeAEAxRXVeAEAxxXfeAEAyRXweAEAyhX4eAEAyxUKeQEAzRUdeQEAzhUteQEAzxU7eQEA3BVIeQEA3RVaeQEA3xVweQEA4BV7eQEA4RWIeQEA4hWWeQEA4xWeeQEA5hWneQEA5xWxeQEA6BXFeQEA6RUPegEA6xUmegEA7RWDegEA7hWJegEA7xWXegEA8BWhegEA8RX7egEA8hUNewEA8xUaewEA9RUnewEA9hU0ewEA9xVAewEA+BVNewEA+RVcewEA+hVvewEA+xV0ewEA/BV+ewEA/RWNewEA/hWUewEA/xWdewEAARagewEAAhanewEAAxauewEABBaxewEABRa7ewEABhbBewEABxbJewEACBbQewEACRbWewEAChbbewEACxbgewEADBbnewEADRbtewEADhb2ewEADxb8ewEAEBYEfAEAERYMfAEAEhYSfAEAExYXfAEAFBYdfAEAFRYxfAEAFhZEfAEAFxZXfAEAGBZrfAEAGRaAfAEAGhaVfAEAGxanfAEAHBa8fAEAHRa/fAEAHhbDfAEAHxbKfAEAIBbVfAEAIRbafAEAIhbffAEAIxbrfAEAJBYCfQEAJRYNfQEAJhYYfQEAJxYhfQEAKBYkfQEAKRYrfQEAKhYufQEAKxYzfQEALBZAfQEALRZKfQEALhZYfQEALxZlfQEAMhZyfQEAMxbTfQEANRblfQEANhYGfgEAORYbfgEAOhZhfgEAOxabfgEAPBbNfgEAPRbjfgEAPhY0fwEAPxaQfwEAQBbvfwEAQRY1gAEAQhZpgAEAQxajgAEARBbGgAEARRbfgAEARhbqgAEARxZugQEASRatgQEAShYHggEASxZiggEATBa2ggEATRYBgwEAThaGgwEATxb/gwEAURa2hAEAVBbBhAEAVRbnhAEAVhZJhQEAVxZXhQEAWBZlhQEAWRZyhQEAXRaFhQEAYBaRhQEAYRaghQEAYha7hQEAYxbHhQEAZhYFhgEAZxYuhgEAaBY7hgEAaxZKhgEAbBZchgEAbRZkhgEAbxZrhgEAcBahhgEAcRayhgEAcxbEhgEAdBbIhgEAdRbVhgEAdhaThwEAdxalhwEAeBa5hwEAeRbKhwEAehbghwEAexYxiAEAfBaEiAEAfRasiAEAfhYeiQEAfxaAiQEAgBaaiQEAghYJigEAgxYoigEAhBZ2igEAhxaNigEAiBaYigEAihbFigEAixbNigEAkxbVigEAlBYEiwEAlRZXiwEAlhZniwEAlxZ7iwEAmBaPiwEAmRaWiwEAmhajiwEAmxatiwEAnBa/iwEAnhbeiwEAnxb/iwEAoBYPjAEAohYjjAEAoxZEjAEApBZMjAEAphZZjAEApxZijAEAqBZnjAEAqRaMjAEArBacjAEArRY1jQEArhZCjQEArxZQjQEAsBaAjQEAsRanjQEAshbWjQEAsxb6jQEAtBZHjgEAtRagjgEAthaxjgEAtxbCjgEAuBbhjgEAuRYMjwEAuhZEjwEAvRZnjwEAvhYJkAEAvxYTkAEAwBZDkAEAxRZekAEAxxZ/kAEAyBadkAEAyRa4kQEAyhYSkgEAyxYjkgEAzRZCkgEAzhZWkgEA0BbIkgEA0hbTkgEA0xbokgEA1Rb7kgEA1hYekwEA1xatkwEA2RYxlAEA3RZElAEA3hailAEA3xZHlQEA4BZ1lQEA4RaklQEA4hbklQEA4xYnlgEA5RbhlgEA5hYJlwEA6RZ4lwEA6haYlwEA7BaglwEA7RbplwEA7xb1lwEA8BYImAEA8RYhmAEADRcomAEADhdLmAEAEhddmAEAdxdpmAEAeRdumAEAehdzmAEAexd7mAEAfBeBmAEAfReGmAEAfheXmAEAfxekmAEAgBe1mAEAgRfCmAEAghfMmAEAgxfRmAEAhBfimAEAhRfumAEAhhf2mAEAihf/mAEAixcLmQEAjBcamQEAjRcqmQEAjhdTmQEAjxdlmQEAkBe6mQEAkRcJmgEAkhcxmgEAkxdXmgEAlBdymgEAlReWmgEAlhfNmgEAlxf/mgEAmBcUmwEAmRc/mwEAmheDmwEAmxeumwEAnhfymwEAnxcJnAEAoBc2nAEAoRdOnAEAohdrnAEAoxeEnAEApBe2nAEApRf7nAEAphcinQEApxdFnQEAqBd/nQEAqRe1nQEAqhfSnQEAqxfvnQEArBcBngEArRcPngEArhchngEArxcvngEAshd1ngEAsxeDngEAtheongEAtxe+ngEAuBfcngEAuxfvngEAvBcOnwEAvxcknwEAwBcxnwEAwRdOnwEAwhdcnwEAwxeunwEAxRf3nwEAzxf/nwEA0BdHoAEA0RdfoAEA0hfLoQEA0xfWoQEA1BfhoQEA1RfsoQEA1hf4oQEA1xcSogEA2BctogEA2RdQogEA2hdmogEA2xeDogEA3Be8ogEA3Rf8ogEA3hceowEA3xdHowEA4BdlowEA4ReDowEA4heqowEA4xe/owEA5BfXowEA5RfcowEA5hfoowEA5xcGpAEA6BcypAEA6Rc/pAEA7BdapAEA7RdgpAEA7heLpAEA7xerpAEA8BfHpAEA8RflpAEA9hcDpQEA9xc9pQEA+Bd9pQEA+heXpQEA+xecpQEA/Be1pQEA/hfDpQEA/xcxpgEAAhizpgEAAxjMpgEABBjYpgEABRjkpgEABhgHpwEACBgRpwEACRh0pwEAChjapwEACxhAqAEADBhwqAEADRgOqQEADhhLqQEADxiEqQEAEBirqQEAERgGqgEAEhiHqgEAExiYqgEAFBgDqwEAFRhwqwEAFhiyqwEAFxjtqwEAGRhtrAEAGhiBrAEAGxiYrAEAHBiyrAEAHhhzrwEAIRiOrwEAIhiwrwEAIxjfrwEAJBgTsAEAJRgvsAEAJhhFsAEAJxhdsAEAKBjIsAEAKRgrsQEAKxiYsQEALBiqsQEALxi/sQEAMBjOsQEAMRjasQEAOhjtsQEAOxgqsgEAPRhtsgEAPhh3sgEAQBiGsgEAQRiZsgEAQhipsgEAQxiJswEARBgOtAEARRhEtAEARhh4tAEARxiqtAEASBjHtAEATRgItQEAThgLtQEAUBgPtQEAURggtQEAUhg2tQEAUxhJtQEAWBhdtQEAWRjJtQEAWhjgtQEAYRjqtQEAYhgJtgEAYxhZtgEAZBiqtgEAZRjwtgEAZhj7tgEAZxgOtwEAahgdtwEAaxg7twEAbBhDtwEAbRhPtwEAfRh1twEAfhiJtwEAfxiOtwEAghiXtwEAgxivtwEAhBi7twEAhRjJtwEAhhjVtwEAhxjhtwEAiBjqtwEAiRj3twEAixgGuAEAjBgMuAEAjhhNuAEAjxhluAEAkBiFuAEAkRiiuAEAkhjFuAEAlRjPuAEAlhgeuQEAlxh1uQEAmBiAuQEAmRiSuQEAmhikuQEAmxixuQEAnhjluQEAnxhTugEAoRgVuwEAohgnuwEAoxguuwEApBhruwEApRieuwEAphijuwEApxi3uwEAqBjIuwEAqRjYuwEAqhj3uwEAqxhLvAEArBiJvAEArRjGvAEA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7ztpCQIA8Dt0CQIA8TuACQIA8juICQIA8zuXCQIA9DuqCQIA9ju/CQIA9zvMCQIA+TvaCQIA/DvrCQIA/Tv5CQIA/jsQCgIA/zsWCgIAADw6CgIAATxoCgIABDyTCgIABTybCgIABjykCgIABzzXCgIACDwGCwIADDwRCwIADTwlCwIADjxaCwIADzyHCwIAEDyeCwIAETzQCwIAEjzsCwIAEzwADAIAFDwQDAIAFzwlDAIAGDw8DAIAGjwdDQIAHTy5DQIAHjxGDgIAHzwLDwIAITzLDwIAIjzuDwIAIzz+DwIAJDwhEAIAJTwxEAIAJzxcEAIAKDyLEAIAKTyREAIAKjy0EAIAKzzAEAIALDzoEAIALTzxEAIALjwLEQIALzwzEQIAMDw8EQIAMTxOEQIAMjxdEQIAMzxkEQIANDxqEQIANTx0EQIANjx9EQIAODyEEQIAOTyREQIAOjypEQIAOzzzEQIAPDw5EgIAPTxUEgIAPjxqEgIAPzxzEgIAQTyHEgIAQjyVEgIAQzyyEgIARDy+EgIARTzPEgIARjz/EgIARzwpEwIASDxDEwIASTxZEwIASjx8EwIASzycEwIATDzDEwIATTwsFAIATjyXFAIATzwlFQIAUDzcFQIAUTyZFgIAUjxUFwIAVDyHFwIAVTzCFwIAVjzUFwIAVzznFwIAWDw1GAIAWTx0GAIAWjw2GQIAWzz0GQIAXDyqGgIAXTyvGgIAXjwdGwIAXzx+GwIAYDwNHQIAYTw0HQIAYjyGHQIAYzydHQIAZDzWHQIAZTziHQIAZjwkHgIAZzw7HgIAaTxEHgIAazx1HgIAbDx6HgIAbTyBHgIAbjyPHgIAbzyWHgIAcDyfHgIAcTy+HgIAczzOHgIAdDwDHwIAdTwNHwIAdjxEHwIAeDxQHwIAeTxYHwIAgjxnHwIAiDyAHwIAjDyGHwIAjTyWHwIAjjywHwIAjzzKHwIAkDziHwIAkTz9HwIAkjwWIAIAkzwvIAIAlDxbIAIAlTxtIAIAlzyFIAIAmDySIAIAmTyfIAIAmjyxIAIAmzzOIAIAnDzrIAIAnTwTIQIAnjwqIQIAnzxBIQIAoDxjIQIAoTx4IQIAojyYIQIApDzVIQIApjwBIgIApzx7IgIAqTyLIgIAqjydIgIAqzytIgIArDy6IgIArjzFIgIArzzWIgIAsDzmIgIAsTzyIgIAsjwAIwIAszwMIwIAtDwcIwIAtzwtIwIAuDw9IwIAuTxSIwIAuzxmIwIAvDx2IwIAvTx+IwIAvjyPIwIAwDyYIwIAwTylIwIAwzysIwIAxDy0IwIAxTzEIwIAxjzTIwIAxzzbIwIAyDzrIwIAyTz6IwIAyjwAJAIAyzwOJAIAzTwbJAIA0jweJAIA1DwsJAIA1jw4JAIA1zxVJAIA2DxjJAIA2Tx4JAIA2jyMJAIA2zyiJAIA3DzBJAIA3TziJAIA3jwCJQIA4DwTJQIA4TwdJQIA5DwyJQIA5TxMJQIA5jxlJQIA5zyAJQIA6DykJQIA6TzKJQIA6jzvJQIA6zwqJgIA7DxrJgIA7TzfJgIAAD02JwIAAT1JJwIAAj1VJwIAAz1yJwIABD2QJwIABT2kJwIABj3HJwIABz3nJwIACD0BKAIACT0cKAIACj01KAIACz1SKAIADD1nKAIADT1/KAIADj2XKAIADz20KAIAED3NKAIAET3iKAIAEj3vKAIAFD39KAIAFT0LKQIAFz0TKQIAGD1aKQIAGT1iKQIAGj2dKQIAGz3WKQIAHD0VKgIAHT1QKgIAHj2MKgIAHz3LKgIAID0EKwIAIT1CKwIAIj1/KwIAIz2XKwIAJT2uKwIAJj0ULAIAJz15LAIAKD3hLAIALD1ALQIALz1aLQIAMD2YLQIANT2pLQIAOD3FLQIAOT3VLQIAPD3dLQIAPT3pLQIAPj3wLQIAPz34LQIAQD0DLgIAQT1ALgIAQj1MLgIAQz1pLgIARD2OLgIART2fLgIARz3ELgIASD3aLgIAST3kLgIASj39LgIASz0VLwIATD0qLwIATT1JLwIATj1sLwIATz2LLwIAUD2oLwIAUT26LwIAUj3HLwIAVD3XLwIAVT3mLwIAVj0BMAIAVz0WMAIAWD0rMAIAWT04MAIAWj1hMAIAWz11MAIAXD2GMAIAXT2dMAIAXj2xMAIAXz3uMAIAYD0zMQIAYT1HMQIAYj1kMQIAZD1+MQIAZT2NMQIAZj2rMQIAZz3KMQIAaD3cMQIAaT3vMQIAaj0DMgIAbD0dMgIAbT0jMgIAbz0sMgIAcD0+MgIAcT1XMgIAcj1yMgIAcz2qMgIAdD28MgIAdT3IMgIAdj3bMgIAdz3+MgIAeD0RMwIAeT0kMwIAej1SMwIAez2eMwIAfD2+MwIAfT0LNAIAfj1KNAIAfz2pNAIAgD3mNAIAgT0mNQIAgj1ONQIAgz1uNQIAiD2XNQIAij21NQIAiz29NQIAjD3MNQIAjz3dNQIAkD3pNQIAkT31NQIAkj1wNgIAlD2SNgIAlT3gNgIAlj0VNwIAlz0dNwIAmD00NwIAmT1DNwIAmj1RNwIAnD2sNwIAnT27NwIAnj3INwIAnz3aNwIAoT3pNwIAoj3zNwIAoz38NwIApD0OOAIApT0fOAIApj0sOAIAqD05OAIAqT1IOAIAqj1POAIAqz1uOAIArD19OAIArT2HOAIArj2MOAIArz2XOAIAsj2jOAIAsz2tOAIAtD23OAIAtT3ROAIAtj3dOAIAtz3kOAIAuD3vOAIAuT34OAIAuj0KOQIAuz0POQIAvD0bOQIAvT0jOQIAvj06OQIAvz1LOQIAwD1aOQIAwT1vOQIAwj2JOQIAwz2SOQIAxD2jOQIAxT22OQIAxz3jOQIAyD3wOQIAyT0MOgIAyj0eOgIAyz0uOgIAzD11OgIAzT26OgIAzj0EOwIAzz1GOwIA0D2GOwIA0j3LOwIA0z0QPAIA1D1+PAIA1T0xPQIA1j3QPQIA1z0iPgIA2D2KPgIA2T2VPgIA2j2oPgIA2z28PgIA3D3QPgIA3T1KPwIA3j1bQAIA3z1oQAIA4D2GQAIA4T03QQIA4j2HQQIA4z0cRAIA5D0qRAIA5j1iRAIA5z0GRQIA6D2bRQIA6T07RgIA6j2+RwIA6z2BSAIA7z2PSAIA8D2uSAIA8T2pSQIA8j1ISgIA8z0pSwIA9D3ISwIA9T3WSwIA9j1ETAIA9z3aTAIA+D0CTQIA+T37TQIA+j1bTgIA+z3xTgIA/D0FTwIA/T38TwIA/j2RUAIA/z1GUQIAAD5gUQIAAT76UQIAAj4UUgIAAz6hUgIABD64UgIABT4eUwIABj5GUwIABz6oUwIACD7OUwIACT4tVAIACj5mVAIACz6FVAIADD7AVAIADj7QVAIADz7wVAIAET5rVQIAEj5yVQIAEz6pVQIAFD66VQIAFT4QVgIAFj4oVgIAFz58VgIAGD6GVgIAGT6YVgIAGj6zVgIAGz7vVgIAHD59VwIAHT6ZVwIAHj7YVwIAHz7iVwIAID72VwIAIT4HWAIAIj4fWAIAIz40WAIAJD5GWAIAJj5VWAIAJz5eWAIAKD5xWAIAKT6gWAIAKj6tWAIAKz7PWAIALD7jWAIALT5BWQIALj5gWQIALz6mWQIAMD7MWQIAMT4+WgIAMj5NWgIAMz6MWgIAND5iWwIANT4pXAIANj5VXAIANz4vXwIAOD5QXwIAOT4RYQIAOj43YQIAOz78YQIAPD4rYgIAPT5PYgIAPj4KYwIAPz4vYwIAQD7rYwIAQj4SZAIAQz4wZAIARD40ZQIART5aZQIARj62ZQIARz7WZQIASD4WZwIAST5WZwIASj5NaAIASz6GaAIATD5VaQIATT6EaQIATj4LagIATz5JagIAUD5nagIAUT6IagIAUj4xawIAUz5iawIAVD4/bAIAVT6HbAIAVj5lbQIAVz5xbQIAWD6fbQIAWT6ubQIAWj7abQIAWz4TbgIAXD45bgIAXT5zbgIAXj56bgIAXz6IbgIAYD68bgIAYT4HbwIAYj46bwIAYz5ubwIAZD6tbwIAZT7tbwIAaD4wcAIAaT5EcAIAaj5mcAIAaz6KcAIAbD6tcAIAbT7HcAIAbj7pcAIAbz4McQIAcD4vcQIAcT6XcQIAcj7McQIAeT7vcQIAej77cQIAfD4bcgIAfT6UcgIAfj7JcgIAgD7WcgIAgT7/cgIAgj4kcwIAgz50cwIAhT69cwIAhj7PcwIAhz7ocwIAiD4BdAIAiT4ddAIAij4zdAIAjD5jdAIAjz5sdAIAkD5/dAIAkT6YdAIAkj7AdAIAlT7jdAIAlj4rdQIAlz5cdQIAmD6ndQIAmT7gdQIAnD4cdgIAnT4ldgIAnj4udgIAnz46dgIAoD5GdgIAoT5QdgIAoj5adgIAoz5kdgIApD5udgIApT57dgIApj6IdgIApz6VdgIAqD6jdgIAqT6ydgIAqj66dgIAqz7CdgIArD7KdgIArj7MdgIArz7WdgIAsz7idgIAtD7xdgIAtT79dgIAtj4WdwIAwT4gdwIAwz48dwIAxD5LdwIAxj5RdwIAxz5YdwIAzT5adwIAzj5wdwIA0D57dwIA0T6NdwIAhk6UdwIAi06ZdwIAjE6ldwIAjU6zdwIAjk67dwIAkk7DdwIAk07FdwIAlE7HdwIAlk7LdwIAl07VdwIAmE7edwIAmU7idwIAmk78dwIAm04LeAIAnE4eeAIAnU4weAIAnk43eAIAn049eAIAoE5KeAIAoU5SeAIAok5eeAIAo05oeAIApE53eAIApU57eAIApk6OeAIAp06SeAIAqE6YeAIAqU6ceAIArE6ieAIArU6veAIArk62eAIAr066eAIAsE6+eAIAsU7ReAIAsk7VeAIAs07feAIAtE7leAIAtU72eAIAtk78eAIAt04CeQIA6U4OeQIA6k4TeQIA604WeQIA7E4beQIA7U4oeQIA7k4teQIA704yeQIA8E42eQIA8U48eQIA8k5AeQIA805FeQIA9E5ReQIA9U5feQIA9k5weQIA906AeQIA+E6UeQIA+U6oeQIA+k69eQIA+07UeQIA/E7ieQIA/076eQIAAE8KegIAAU8cegIAAk8qegIAA084egIABE9LegIABU9eegIABk91egIAB0+ZegIACU+3egIACk/XegIADU/2egIADk8CewIAD08OewIAEU8VewIAFE8cewIAFU8newIAFk9HewIAF09VewIAGE98ewIAGU+zewIAGk/sewIAG08lfAIAHE9OfAIAHU+JfAIAHk/OfAIAH08FfQIAIE8vfQIAIU9JfQIAIk9wfQIAI0+MfQIAJE/XfQIAJU/tfQIAJk8IfgIAJ081fgIAKE9KfgIAKU9tfgIAKk+PfgIAK0+tfgIALE/AfgIALU/ifgIALk8pfwIAL09jfwIAME+9fwIAMU8WgAIAMk9xgAIANU95gAIANk+DgAIAPU+SgAIAPk+jgAIAP0+5gAIAQE/OgAIAQU/jgAIAQk/3gAIARE//gAIARU8UgQIARk8ZgQIAR08egQIASE8jgQIASU8ogQIAUF8tgQIAUV9PgQIAUl9cgQIAU19mgQIAVF9wgQIAVV96gQIAVl+IgQIAV1+SgQIAWF+fgQIAWV+rgQIAWl+4gQIAW1/DgQIAXF/NgQIALGDggQIALWAuggIALmBNggIAL2BzggIAMGCXggIAMWC6ggIAMmDbggIAM2AigwIANGBJgwIANWBigwIANmCQgwIAN2DDgwIAOGDfgwIAOWD4gwIAOmAEhAIAO2A+hAIAPGCehAIAPWD2hAIAPmCLhQIAP2CghQIAQGCxhQIAQWDVhQIAQmDfhQIAQ2D8hQIARGAdhgIARWBRhgIARmBrhgIAR2CYhgIASGDJhgIASWAChwIASmANhwIATGAfhwIATWAqhwIATmA1hwIAT2BGhwIAUGBVhwIAUWBghwIAUmC1hwIAU2AiiAIAVGCPiAIAVWAciQIAVmCqiQIAV2AqigIAWGCeigIAWWDMigIAWmAwiwIAW2BJiwIAXGBriwIAXWCKiwIAXmA6jAIAYGBRjAIAYWBjjAIAF2l8jAIAGGmNjAIARmmQjAIAR2m8jAIASWnujAIASmkajQIAS2lMjQIATWmIjQIATmm0jQIAUGnqjQIAUWkTjgIAUmlGjgIAU2l1jgIAVGmhjgIAVWnXjgIAVmkTjwIAV2lJjwIAWGmFjwIAWWm7jwIAWmnujwIAW2knkAIAXGldkAIAXWmRkAIAXmnLkAIAX2n/kAIAYGk5kQIAYWltkQIAYmmekQIAY2nVkQIAZWkJkgIAZmkSkgIAamkZkgIAbWkwkgIAbmk9kgIAb2lGkgIAcGlPkgIAcWlZkgIAcmlikgIAc2lokgIAdGlwkgIAdWl1kgIAdml6kgIAd2mIkgIAeGmMkgIAeWmQkgIAemmVkgIAe2mbkgIAgmmikgIAg2mwkgIAhGm5kgIAhWnDkgIAhmnGkgIAh2nMkgIAiGnTkgIAiWnckgIAimnnkgIAi2nzkgIAjGn8kgIAlmkHkwIAl2kKkwIAmGkNkwIAmmkQkwIAm2kTkwIAnmkWkwIAn2kgkwIAoGkrkwIAoWkzkwIAomk9kwIAo2lCkwIApGlHkwIApWlJkwIApmlMkwIAp2lVkwIAqGlakwIAqWlgkwIAqmlwkwIAq2mAkwIArGmUkwIArWmekwIArmmlkwIAr2mrkwIAsGmzkwIAsWm9kwIAsmnGkwIAuGnKkwIAuWnQkwIAumnXkwIAu2nekwIAvGnlkwIAvWnskwIAvmnzkwIAv2kflAIAwGkrlAIAwWlIlAIAwmlblAIAw2lwlAIAxGl1lAIAxWl9lAIAxmmBlAIAyGmKlAIAyWmNlAIAymmylAIAy2nVlAIAzGn3lAIAzWkalQIAzmkxlQIA0Gk8lQIA0mlOlQIA12ljlQIA2GlxlQIA2WmAlQIA2mmQlQIA22mblQIA3GmqlQIA3mmylQIA32nAlQIA4GnJlQIA4WnUlQIA42nglQIA5Gn2lQIA5WkIlgIA5mkalgIA52kwlgIA6GlElgIA6WlRlgIA6mlflgIA62l9lgIA7GmXlgIA7Wm8lgIA7mnElgIA72nclgIA8GnrlgIAHXD7lgIAHnD/lgIAH3AIlwIAIHAOlwIAIXAWlwIA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FQE7TzsNPE+NA0NPRgFLYCgPSGlKD0xpTA9PaU4PZGmODn5p8wB/aVYHgGlXB4FpWAeNaY4DjmmQA49pkQOQaZIDkWmjAJJpmgOTab0FlGknBJVp8wCZaVAHnGl7D51pfA+zaQEPtGkCD7VpAw+2aQQPt2kFD8dprwnPaWYB0WnzAN1p8gDiac0IHHBPASVwgwsmcIILJ3B5CyhwegspcHsLKnB8CyxwfQstcH4LL3B/CzBwgAsxcIELMnB4CzRwqwBBYm91dCBDaHJvbWl1bUdldCBoZWxwIHdpdGggQ2hyb21pdW1VcGRhdGluZyBDaHJvbWl1bVVwZGF0aW5nIENocm9taXVtICgkMSlOZWFybHkgdXAgdG8gZGF0ZSEgUmVsYXVuY2ggQ2hyb21pdW0gdG8gZmluaXNoIHVwZGF0aW5nLkNocm9taXVtIGlzIHVwIHRvIGRhdGVHb29nbGUgUGF5IChjb3BpZWQgdG8gQ2hyb21pdW0pQ2hyb21pdW0gaXMgeW91ciBkZWZhdWx0IGJyb3dzZXJNYWtlIENocm9taXVtIHRoZSBkZWZhdWx0IGJyb3dzZXJDaHJvbWl1bSBjYW5ub3QgZGV0ZXJtaW5lIG9yIHNldCB0aGUgZGVmYXVsdCBicm93c2VyVGhpcyBpcyBhIHNlY29uZGFyeSBpbnN0YWxsYXRpb24gb2YgQ2hyb21pdW0sIGFuZCBjYW5ub3QgYmUgbWFkZSB5b3VyIGRlZmF1bHQgYnJvd3Nlci5DaHJvbWl1bSBtYXkgdXNlIHdlYiBzZXJ2aWNlcyB0byBpbXByb3ZlIHlvdXIgYnJvd3NpbmcgZXhwZXJpZW5jZS4gWW91IG1heSBvcHRpb25hbGx5IGRpc2FibGUgdGhlc2Ugc2VydmljZXMuIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+TGVhcm4gbW9yZTwvYT5TaWduIGluIHRvIENocm9taXVtIGlzIGRpc2FibGVkIGJ5IHRoZSBhZG1pbmlzdHJhdG9yIG9mIHRoaXMgZGV2aWNlLlRoaXMgd2lsbCBkZWxldGUgMSBpdGVtIGZyb20gdGhpcyBkZXZpY2UuIFRvIHJldHJpZXZlIHlvdXIgZGF0YSBsYXRlciwgc2lnbiBpbiB0byBDaHJvbWl1bSBhcyAkMS5UaGlzIHdpbGwgZGVsZXRlICQxIGl0ZW1zIGZyb20gdGhpcyBkZXZpY2UuIFRvIHJldHJpZXZlIHlvdXIgZGF0YSBsYXRlciwgc2lnbiBpbiB0byBDaHJvbWl1bSBhcyAkMi5UaGlzIHdpbGwgZGVsZXRlIHlvdXIgYnJvd3NpbmcgZGF0YSBmcm9tIHRoaXMgZGV2aWNlLiBUbyByZXRyaWV2ZSB5b3VyIGRhdGEgbGF0ZXIsIHNpZ24gaW4gdG8gQ2hyb21pdW0gYXMgJDEuU2lnbiBpbiB0byBDaHJvbWl1bUZvciBhZGRlZCBzZWN1cml0eSwgQ2hyb21pdW0gd2lsbCBlbmNyeXB0IHlvdXIgZGF0YS5TaWduIG91dCBvZiBDaHJvbWl1bUNocm9taXVtIGlzIGRpc3BsYXllZCBpbiB0aGlzIGxhbmd1YWdlRGlzcGxheSBDaHJvbWl1bSBpbiB0aGlzIGxhbmd1YWdlQ29udGludWUgcnVubmluZyBiYWNrZ3JvdW5kIGFwcHMgd2hlbiBDaHJvbWl1bSBpcyBjbG9zZWRIZWxwIG1ha2UgQ2hyb21pdW0gYmV0dGVyIGJ5IHJlcG9ydGluZyB0aGUgPGEgaXM9ImFjdGlvbi1saW5rIiB0YXJnZXQ9Il9ibGFuayI+Y3VycmVudCBzZXR0aW5nczwvYT5EaXNjb25uZWN0aW5nICQxIHdpbGwgY2xlYXIgeW91ciBoaXN0b3J5LCBib29rbWFya3MsIHNldHRpbmdzLCBhbmQgb3RoZXIgQ2hyb21pdW0gZGF0YSBzdG9yZWQgb24gdGhpcyBkZXZpY2UuIERhdGEgc3RvcmVkIGluIHlvdXIgR29vZ2xlIEFjY291bnQgd2lsbCBub3QgYmUgY2xlYXJlZCBhbmQgY2FuIGJlIG1hbmFnZWQgb24gPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQyIj5Hb29nbGUgRGFzaGJvYXJkPC9hPi5DaHJvbWl1bUNocm9taXVtIGxvZ29zaWduIGluIHRvIENocm9taXVtVGFzayBNYW5hZ2VyIC0gQ2hyb21pdW1IZWxwIG1ha2UgQ2hyb21pdW0gYmV0dGVyIGJ5IHNlbmRpbmcgY3Jhc2ggcmVwb3J0cyBhbmQgJDEgdG8gR29vZ2xlJDEgLSBDaHJvbWl1bUdldCBoZWxwIHdpdGggdXNpbmcgQ2hyb21pdW1UaGUgQ2hyb21pdW0gQXV0aG9yc0NvcHlyaWdodCB7MCxkYXRlLHl9IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLk5vdCB1c2VkIGluIENocm9taXVtLiBQbGFjZWhvbGRlciB0byBrZWVwIHJlc291cmNlIG1hcHMgaW4gc3luYy4gSXQgZXhwZWN0cyBvbmUgYXJndW1lbnQ6ICQxLldlbGNvbWUgdG8gQ2hyb21pdW1QbGVhc2UgY2xvc2UgYWxsIENocm9taXVtIHdpbmRvd3MgYW5kIHJlbGF1bmNoIENocm9taXVtIGZvciB0aGlzIGNoYW5nZSB0byB0YWtlIGVmZmVjdC5MZXQgQ2hyb21pdW0gcnVuIGluIHRoZSBiYWNrZ3JvdW5kVXNlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiB3aGVuIGF2YWlsYWJsZShyZXF1aXJlcyBDaHJvbWl1bSA8YSBpcz0iYWN0aW9uLWxpbmsiIHJvbGU9ImJ1dHRvbiIgaWQ9ImdwdS1tb2RlLXJlc2V0LXJlc3RhcnQtYnV0dG9uIiBjbGFzcz0ic3RhbmRhbG9uZS1hY3Rpb24tbGluayI+cmVzdGFydDwvYT4pQ2hyb21pdW0gY2Fubm90IHJlYWQgYW5kIHdyaXRlIHRvIGl0cyBkYXRhIGRpcmVjdG9yeToKCiQxWW91ciBwcm9maWxlIGNhbiBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIGZyb20gYSBuZXdlciB2ZXJzaW9uIG9mIENocm9taXVtLgoKU29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIFBsZWFzZSBzcGVjaWZ5IGEgZGlmZmVyZW50IHByb2ZpbGUgZGlyZWN0b3J5IG9yIHVzZSBhIG5ld2VyIHZlcnNpb24gb2YgQ2hyb21pdW0uWW91ciBwcmVmZXJlbmNlcyBjYW4gbm90IGJlIHJlYWQuCgpTb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZSBhbmQgY2hhbmdlcyB0byBwcmVmZXJlbmNlcyB3b24ndCBiZSBzYXZlZC5Zb3VyIHByZWZlcmVuY2VzIGZpbGUgaXMgY29ycnVwdCBvciBpbnZhbGlkLgoKQ2hyb21pdW0gaXMgdW5hYmxlIHRvIHJlY292ZXIgeW91ciBzZXR0aW5ncy5DaHJvbWl1bSB3aWxsIHNhdmUgdGhpcyBwYXNzd29yZCB3aXRoICQxLiBZb3UgZG9u4oCZdCBoYXZlIHRvIHJlbWVtYmVyIGl0LlVzZSBhIHN0cm9uZyBwYXNzd29yZCBnZW5lcmF0ZWQgYnkgQ2hyb21pdW1DaHJvbWl1bSBpc24ndCB5b3VyIGRlZmF1bHQgYnJvd3Nlci5DaHJvbWl1bSBkb2VzIG5vdCBpbmNsdWRlIHRoZSBQREYgdmlld2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBQcmludCBQcmV2aWV3IHRvIGZ1bmN0aW9uLkFkZGluZyB0byBDaHJvbWl1beKApiQxIG1heSBiZSBkYW5nZXJvdXMsIHNvIENocm9taXVtIGhhcyBibG9ja2VkIGl0LlRoaXMgZmlsZSBpcyBkYW5nZXJvdXMsIHNvIENocm9taXVtIGhhcyBibG9ja2VkIGl0LiQxIGlzIGRhbmdlcm91cywgc28gQ2hyb21pdW0gaGFzIGJsb2NrZWQgaXQuVGhpcyBmaWxlIG1heSBiZSBkYW5nZXJvdXMsIHNvIENocm9taXVtIGhhcyBibG9ja2VkIGl0LntOVU1fRE9XTkxPQUQsIHBsdXJhbCwKICAgICAgICA9MSB7QSBkb3dubG9hZCBpcyBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MuIERvIHlvdSB3YW50IHRvIGNhbmNlbCB0aGUgZG93bmxvYWQgYW5kIGV4aXQgQ2hyb21pdW0/fQogICAgICAgIG90aGVyIHsjIGRvd25sb2FkcyBhcmUgY3VycmVudGx5IGluIHByb2dyZXNzLiBEbyB5b3Ugd2FudCB0byBjYW5jZWwgdGhlIGRvd25sb2FkcyBhbmQgZXhpdCBDaHJvbWl1bT99fUdvb2dsZSBBUEkga2V5cyBhcmUgbWlzc2luZy4gU29tZSBmdW5jdGlvbmFsaXR5IG9mIENocm9taXVtIHdpbGwgYmUgZGlzYWJsZWQuQ2hyb21pdW0gaXMgdXAgdG8gZGF0ZS5VcGRhdGluZyBDaHJvbWl1beKApkFkZCB0byBDaHJvbWl1bSQxIGhhcyBiZWVuIGFkZGVkIHRvIENocm9taXVtLkhpZGUgaW4gQ2hyb21pdW0gbWVudUhlbHAgbWFrZSBDaHJvbWl1bSBiZXR0ZXIgYnkgcmVwb3J0aW5nIHRoZSBjdXJyZW50IHNldHRpbmdzV2FybmluZzogQ2hyb21pdW0gY2Fubm90IHByZXZlbnQgZXh0ZW5zaW9ucyBmcm9tIHJlY29yZGluZyB5b3VyIGJyb3dzaW5nIGhpc3RvcnkuIFRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24gaW4gaW5jb2duaXRvIG1vZGUsIHVuc2VsZWN0IHRoaXMgb3B0aW9uLlJlbW92ZSBmcm9tIENocm9taXVt4oCmSW4gQ2hyb21pdW1UbyBtYWtlIENocm9taXVtIHNhZmVyLCB3ZSBkaXNhYmxlZCBzb21lIGV4dGVuc2lvbnMgdGhhdCBhcmVuJ3QgbGlzdGVkIGluIHRoZSAkMSBhbmQgbWF5IGhhdmUgYmVlbiBhZGRlZCB3aXRob3V0IHlvdXIga25vd2xlZGdlLlRvIG1ha2UgQ2hyb21pdW0gc2FmZXIsIHdlIGRpc2FibGVkIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIHRoYXQgaXNuJ3QgbGlzdGVkIGluIHRoZSAkMSBhbmQgbWF5IGhhdmUgYmVlbiBhZGRlZCB3aXRob3V0IHlvdXIga25vd2xlZGdlLkN1c3RvbWl6ZSBhbmQgY29udHJvbCBDaHJvbWl1bSZPcGVuIGluIENocm9taXVtQWJvdXQgJkNocm9taXVtVXBkYXRlICZDaHJvbWl1bVlvdSdyZSBub3cgc2lnbmVkIGluIHRvIENocm9taXVtVGhpcyBpcyB5b3VyIENocm9taXVtU2hhcmUgYSBjb21wdXRlcj8gTm93IHlvdSBjYW4gc2V0IHVwIENocm9taXVtIGp1c3QgdGhlIHdheSB5b3UgbGlrZSBpdC5BZnRlciByZW1vdmluZyB5b3VyIGFjY291bnQgZnJvbSBDaHJvbWl1bSwgeW91IG1heSBuZWVkIHRvIHJlbG9hZCB5b3VyIG9wZW4gdGFicyB0byB0YWtlIGVmZmVjdC5Zb3UncmUgdXNpbmcgJDEgdG8gc3luYyB5b3VyIENocm9taXVtIHN0dWZmLiBUbyB1cGRhdGUgeW91ciBzeW5jIHByZWZlcmVuY2Ugb3IgdG8gdXNlIENocm9taXVtIHdpdGhvdXQgYSBHb29nbGUgYWNjb3VudCwgdmlzaXQgJDIuWW91J3JlIHNpZ25lZCBpbiB0byBDaHJvbWl1bSFZb3UncmUgc2lnbmVkIGluIGFzICQxLiBOb3cgeW91IGNhbiBhY2Nlc3MgeW91ciBib29rbWFya3MsIGhpc3RvcnksIGFuZCBvdGhlciBzZXR0aW5ncyBvbiBhbGwgeW91ciBzaWduZWQgaW4gZGV2aWNlcy5Zb3UncmUgbm93IHNpZ25lZCBpbiB0byBDaHJvbWl1bSEgU3luYyBpcyBkaXNhYmxlZCBieSB5b3VyIGFkbWluaXN0cmF0b3IuWW91IHdlcmUgc2lnbmVkIGluIHRvIENocm9taXVtIGFzICQxLiBQbGVhc2UgdXNlIHRoZSBzYW1lIGFjY291bnQgdG8gc2lnbiBpbiBhZ2Fpbi5Tb21lb25lIHByZXZpb3VzbHkgc2lnbmVkIGluIHRvIENocm9taXVtIG9uIHRoaXMgY29tcHV0ZXIgYXMgJDEuIElmIHRoYXQgaXNuJ3QgeW91ciBhY2NvdW50LCBjcmVhdGUgYSBuZXcgQ2hyb21pdW0gdXNlciB0byBrZWVwIHlvdXIgaW5mb3JtYXRpb24gc2VwYXJhdGUuCgpTaWduaW5nIGluIGFueXdheSB3aWxsIG1lcmdlIENocm9taXVtIGluZm9ybWF0aW9uIGxpa2UgYm9va21hcmtzLCBoaXN0b3J5LCBhbmQgb3RoZXIgc2V0dGluZ3MgdG8gJDIuU29tZW9uZSBwcmV2aW91c2x5IHNpZ25lZCBpbiB0byBDaHJvbWl1bSBvbiB0aGlzIGNvbXB1dGVyIGFzICQxLiBQbGVhc2UgY3JlYXRlIGEgbmV3IENocm9taXVtIHVzZXIgdG8ga2VlcCB5b3VyIGluZm9ybWF0aW9uIHNlcGFyYXRlLiQxIHdhcyBwcmV2aW91c2x5IHVzaW5nIENocm9taXVtQ2hyb21pdW0gY291bGQgbm90IHN5bmMgeW91ciBkYXRhLiBQbGVhc2UgdXBkYXRlIHlvdXIgU3luYyBwYXNzcGhyYXNlLkNocm9taXVtIGNvdWxkIG5vdCBzeW5jIHlvdXIgZGF0YSBiZWNhdXNlIHlvdXIgYWNjb3VudCBzaWduLWluIGRldGFpbHMgYXJlIG91dCBvZiBkYXRlLkNocm9taXVtIGNvdWxkIG5vdCBzeW5jIHlvdXIgZGF0YSBiZWNhdXNlIFN5bmMgaXMgbm90IGF2YWlsYWJsZSBmb3IgeW91ciBkb21haW4uQ2hyb21pdW0gY291bGQgbm90IHN5bmMgeW91ciBkYXRhIGR1ZSB0byBhbiBlcnJvciBzaWduaW5nIGluLlNhdmUgZGV0YWlscyBpbiBDaHJvbWl1bUNocm9taXVtIHdpbGwgc2VjdXJlbHkgc3RvcmUgeW91ciBwZXJzb25hbCBkZXRhaWxzIHNvIHlvdSBkb24ndCBuZWVkIHRvIHR5cGUgdGhlbSBpbiBhZ2Fpbi5Db3BpZWQgdG8gQ2hyb21pdW1DaHJvbWl1bSBBcHBzQ2hyb21pdW0gaXMgdXNpbmcgeW91ciBjYW1lcmEgYW5kIG1pY3JvcGhvbmUuQ2hyb21pdW0gaXMgdXNpbmcgeW91ciBtaWNyb3Bob25lLkNocm9taXVtIGlzIHVzaW5nIHlvdXIgY2FtZXJhLlRoZSBwcm9maWxlIGFwcGVhcnMgdG8gYmUgaW4gdXNlIGJ5IGFub3RoZXIgQ2hyb21pdW0gcHJvY2VzcyAoJDEpIG9uIGFub3RoZXIgY29tcHV0ZXIgKCQyKS4gQ2hyb21pdW0gaGFzIGxvY2tlZCB0aGUgcHJvZmlsZSBzbyB0aGF0IGl0IGRvZXNuJ3QgZ2V0IGNvcnJ1cHRlZC4gSWYgeW91IGFyZSBzdXJlIG5vIG90aGVyIHByb2Nlc3NlcyBhcmUgdXNpbmcgdGhpcyBwcm9maWxlLCB5b3UgY2FuIHVubG9jayB0aGUgcHJvZmlsZSBhbmQgcmVsYXVuY2ggQ2hyb21pdW0uVG8gc2V0IHdoaWNoIHdlYnNpdGVzICQxIGNhbiB2aWV3LCB5b3UgY2FuIGNvbmZpZ3VyZSByZXN0cmljdGlvbnMgYW5kIHNldHRpbmdzIGJ5IHZpc2l0aW5nIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMyI+JDQ8L2E+LiBJZiB5b3UgZG8gbm90IGNoYW5nZSB0aGUgZGVmYXVsdCBzZXR0aW5ncywgJDEgY2FuIGJyb3dzZSBldmVyeXRoaW5nIG9uIHRoZSB3ZWIuCgpUbyBwcmV2ZW50ICQxIGZyb20gYWNjZXNzaW5nIHlvdXIgYWNjb3VudCwgbWFrZSBzdXJlIHlvdSBsb2NrIHlvdXIgcHJvZmlsZSB3aGVuIHlvdSdyZSBub3QgdXNpbmcgQ2hyb21pdW0uIFRvIGRvIHRoaXMsIGNsaWNrIHlvdXIgcHJvZmlsZSBuYW1lIGluIHRoZSB1cHBlci1yaWdodCBjb3JuZXIgb2YgdGhlIGJyb3dzZXIsIGFuZCBzZWxlY3QgIkV4aXQgYW5kIGNoaWxkbG9jay4iCjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9jaHJvbWUvP3A9dWlfc3VwZXJ2aXNlZF91c2VycyZobD1lbiI+TGVhcm4gbW9yZTwvYT4KClBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGF0ICQyIGZvciBmdXJ0aGVyIGluc3RydWN0aW9ucy5UaGlzIHBlcnNvbidzIGJyb3dzaW5nIGRhdGEgd2lsbCBiZSBkZWxldGVkIGZyb20gdGhpcyBkZXZpY2UuIFRvIHJlY292ZXIgdGhlIGRhdGEsIHNpZ24gaW4gdG8gQ2hyb21lIGFzICQyLkNocm9taXVtIGp1c3QgZ290IGJldHRlck5vdyBpdCdzIGVhc2llciB0byB1c2UgQ2hyb21pdW0gd2l0aCB5b3VyIEdvb2dsZSBBY2NvdW50IGFuZCBvbiBzaGFyZWQgY29tcHV0ZXJzLllvdXIgd2ViLCBib29rbWFya3MsIGFuZCBvdGhlciBDaHJvbWl1bSBzdHVmZiBsaXZlIGhlcmUuR3Vlc3RzIGNhbiB1c2UgQ2hyb21pdW0gd2l0aG91dCBsZWF2aW5nIGFueXRoaW5nIGJlaGluZC5JZiB5b3Ugc2hhcmUgYSBjb21wdXRlciwgZnJpZW5kcyBhbmQgZmFtaWx5IGNhbiBicm93c2Ugc2VwYXJhdGVseSBhbmQgc2V0IHVwIENocm9taXVtIGp1c3QgdGhlIHdheSB0aGV5IHdhbnQuQ2xpY2sgeW91ciBuYW1lIHRvIG9wZW4gQ2hyb21pdW0gYW5kIHN0YXJ0IGJyb3dzaW5nLkFkZCB5b3Vyc2VsZiB0byBDaHJvbWl1bVRoaXMgZXh0ZW5zaW9uIGhhcyBjaGFuZ2VkIHdoYXQgcGFnZSBpcyBzaG93biB3aGVuIHlvdSBzdGFydCBDaHJvbWl1bS5UaGUgZXh0ZW5zaW9uICIkMSIgaGFzIGNoYW5nZWQgd2hhdCBwYWdlIGlzIHNob3duIHdoZW4geW91IHN0YXJ0IENocm9taXVtLiBJdCBhbHNvIGNvbnRyb2xzIHdoYXQgcGFnZSBpcyBzaG93biB3aGVuIHlvdSBzdGFydCBDaHJvbWl1bS4gIEl0IGFsc28gY29udHJvbHMgd2hhdCBwYWdlIGlzIHNob3duIHdoZW4geW91IHN0YXJ0IENocm9taXVtIG9yIGNsaWNrIHRoZSBIb21lIGJ1dHRvbi4gIEl0IGFsc28gY29udHJvbHMgd2hhdCBwYWdlIGlzIHNob3duIHdoZW4geW91IHN0YXJ0IENocm9taXVtIG9yIHNlYXJjaCBmcm9tIHRoZSBPbW5pYm94LiBEaXNjb3ZlciBncmVhdCBhcHBzLCBnYW1lcywgZXh0ZW5zaW9ucyBhbmQgdGhlbWVzIGZvciBDaHJvbWl1bS5DaHJvbWl1bSBjYW4gcHJvdmlkZSBzbWFydGVyIHNwZWxsLWNoZWNraW5nIGJ5IHNlbmRpbmcgd2hhdCB5b3UgdHlwZSBpbiB0aGUgYnJvd3NlciB0byBHb29nbGUgc2VydmVycywgYWxsb3dpbmcgeW91IHRvIHVzZSB0aGUgc2FtZSBzcGVsbC1jaGVja2luZyB0ZWNobm9sb2d5IHVzZWQgYnkgR29vZ2xlIHNlYXJjaC5PcGVuIGxpbmsgaW4gbmV3IENocm9taXVtICZ0YWJPcGVuIGxpbmsgaW4gQ2hyb21pdW0gaW5jbyZnbml0byB3aW5kb3dSZWxhdW5jaCBDaHJvbWl1bUNocm9taXVtIGlzIG91dCBvZiBkYXRlIGJlY2F1c2UgaXQgaGFzbid0IGJlZW4gcmVsYXVuY2hlZCBpbiBhIHdoaWxlLiBBbiB1cGRhdGUgaXMgYXZhaWxhYmxlIGFuZCB3aWxsIGJlIGFwcGxpZWQgYXMgc29vbiBhcyB5b3UgcmVsYXVuY2guUmVsYXVuY2hSZWluc3RhbGwgQ2hyb21pdW1DaHJvbWl1bSBpcyBvdXQgb2YgZGF0ZUNhbid0IHVwZGF0ZSBDaHJvbWl1bUNocm9taXVtIGNvdWxkbid0IHVwZGF0ZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24sIHNvIHlvdSdyZSBtaXNzaW5nIG91dCBvbiBuZXcgZmVhdHVyZXMgYW5kIHNlY3VyaXR5IGZpeGVzLllvdXIgbWFuYWdlciBtdXN0IHJlbW92ZSBhbmQgYWRkIHlvdSBiYWNrIHRvIENocm9taXVtLlVwZGF0ZSBDaHJvbWl1bVVwZGF0ZSBDaHJvbWl1bSB0byBzdGFydCBzeW5jTm8sIHRoYW5rc0ltcG9ydGFudCBzZWN1cml0eSBpbXByb3ZlbWVudHMgYW5kIG5ldyBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBsYXRlc3QgdmVyc2lvbi57U0VDT05EUywgcGx1cmFsLAogICAgICAgICA9MSB7Q2hyb21pdW0gd2lsbCByZXN0YXJ0IGluIDEgc2Vjb25kLn0KICAgICAgICAgb3RoZXIge0Nocm9taXVtIHdpbGwgcmVzdGFydCBpbiAjIHNlY29uZHMufX1Zb3Ugc2hvdWxkIHJlc3RhcnQgQ2hyb21pdW0gbm93LkEgc3BlY2lhbCBzZWN1cml0eSB1cGRhdGUgZm9yIENocm9taXVtIHdhcyBqdXN0IGFwcGxpZWQ7IHlvdSBzaG91bGQgcmVzdGFydCBub3cgZm9yIGl0IHRvIHRha2UgZWZmZWN0ICh3ZSdsbCByZXN0b3JlIHlvdXIgdGFicykuT0sgLSBSZXN0YXJ0IG5vd0Rvbid0IHJlc3RhcnRIZWxwIG1ha2UgQ2hyb21pdW0gYmV0dGVyWW91IGNhbiBoZWxwIG1ha2UgQ2hyb21pdW0gc2FmZXIgYW5kIGVhc2llciB0byB1c2UgYnkgYXV0b21hdGljYWxseSByZXBvcnRpbmcgZGV0YWlscyBvZiBwb3NzaWJsZSBzZWN1cml0eSBpbmNpZGVudHMgdG8gR29vZ2xlLllvdSBjYW4gaGVscCBtYWtlIENocm9taXVtIHNhZmVyIGFuZCBlYXNpZXIgdG8gdXNlIGJ5IGF1dG9tYXRpY2FsbHkgc2VuZGluZyBzb21lIHN5c3RlbSBpbmZvcm1hdGlvbiBhbmQgcGFnZSBjb250ZW50IHRvIEdvb2dsZSB0byBoZWxwIGRldGVjdCBkYW5nZXJvdXMgYXBwcyBhbmQgc2l0ZXMuQ2hyb21pdW0gVGFiUmVzdGFydCBDaHJvbWl1bSB0byBlbmFibGUgJDFJbnN0YWxsIENocm9taXVtIG9uIHlvdXIgcGhvbmUuIFdl4oCZbGwgc2VuZCBhbiBTTVMgdG8geW91ciBwaG9uZS5JbnN0YWxsIENocm9taXVtIG9uIHlvdXIgcGhvbmUuIFdl4oCZbGwgc2VuZCBhbiBTTVMgdG8geW91ciBwaG9uZTogJDFJbnN0YWxsIENocm9taXVtIG9uIHlvdXIgcGhvbmUuIFdl4oCZbGwgc2VuZCBhbiBTTVMgdG8geW91ciBhY2NvdW50IHJlY292ZXJ5IHBob25lIG51bWJlci5JbnN0YWxsIENocm9taXVtIG9uIHlvdXIgcGhvbmUuIFdl4oCZbGwgc2VuZCBhbiBTTVMgdG8geW91ciBhY2NvdW50IHJlY292ZXJ5IHBob25lIG51bWJlcjogJDFnZXQgQ2hyb21pdW0gb24geW91ciBpUGhvbmVUYWtlIENocm9taXVtIGV2ZXJ5d2hlcmVXZWIgYnJvd3Npbmcgd2l0aCBHb29nbGUgc21hcnRzTm90IG5vd1NpZ24gaW4gZm9yIGEgcGVyc29uYWxpemVkIGJyb3dzaW5nIGV4cGVyaWVuY2UsIHN5bmNlZCBhY3Jvc3MgZGV2aWNlc0ZvciBxdWljayBhY2Nlc3MsIHBsYWNlIHlvdXIgYm9va21hcmtzIGhlcmUgb24gdGhlIGJvb2ttYXJrcyBiYXIuSW1wb3J0IGJvb2ttYXJrcyBub3figKZJbXBvcnRlZCBGcm9tIEZpcmVmb3hJbXBvcnRlZCBGcm9tIFNhZmFyaUltcG9ydGVkU2hvdyBhcHBzIHNob3J0Y3V0U2hvdyBtYW5hZ2VkIGJvb2ttYXJrc1Nob3cgJDFBcHBzU2hvdyBhcHBzJk9wZW4gYWxsIGJvb2ttYXJrc09wZW4gYWxsIGJvb2ttYXJrcyBpbiAmbmV3IHdpbmRvd09wZW4gYWxsIGJvb2ttYXJrcyBpbiAmaW5jb2duaXRvIHdpbmRvd3tDT1VOVCwgcGx1cmFsLAogICAgICAgICAgPTAgeyZPcGVuIGFsbH0KICAgICAgICAgID0xIHsmT3BlbiBib29rbWFya30KICAgICAgICAgIG90aGVyIHsmT3BlbiBhbGwgKCMpfX17Q09VTlQsIHBsdXJhbCwKICAgICAgICAgID0wIHtPcGVuIGFsbCBpbiAmbmV3IHdpbmRvd30KICAgICAgICAgID0xIHtPcGVuIGluICZuZXcgd2luZG93fQogICAgICAgICAgb3RoZXIge09wZW4gYWxsICgjKSBpbiAmbmV3IHdpbmRvd319e0NPVU5ULCBwbHVyYWwsCiAgICAgICAgICA9MCB7T3BlbiBhbGwgaW4gJmluY29nbml0byB3aW5kb3d9CiAgICAgICAgICA9MSB7T3BlbiBpbiAmaW5jb2duaXRvIHdpbmRvd30KICAgICAgICAgIG90aGVyIHtPcGVuIGFsbCAoIykgaW4gJmluY29nbml0byB3aW5kb3d9fSZPcGVuIGluIG5ldyB0YWJPcGVuIGluICZuZXcgd2luZG93T3BlbiBpbiAmaW5jb2duaXRvIHdpbmRvdyZFZGl04oCmJlJlbmFtZeKApiZEZWxldGVBZGQgcGEmZ2XigKZBZGQgJmZvbGRlcuKApiZTaG93IGJvb2ttYXJrcyBiYXJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3BlbiAkMSB0YWJzP0Jvb2ttYXJrIGFkZGVkQm9va21hcmtFZGl0IGJvb2ttYXJrTmFtZUJvb2ttYXJrIG5hbWVGb2xkZXJCb29rbWFyayBmb2xkZXJFZGl04oCmQ2hvb3NlIGFub3RoZXIgZm9sZGVy4oCmVG8gZ2V0IHlvdXIgYm9va21hcmtzIG9uIGFsbCB5b3VyIGRldmljZXMsICQxLkJvb2ttYXJrIFVSTFVSTHtOVU1fQk9PS01BUktTLCBwbHVyYWwsCiAgICAgPTEge1RoaXMgZm9sZGVyIGNvbnRhaW5zIGEgYm9va21hcmsuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgaXQ/fQogICAgIG90aGVyIHtUaGlzIGZvbGRlciBjb250YWlucyAjIGJvb2ttYXJrcy4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBpdD99fU5ldyBmb2xkZXImTmV3IGZvbGRlckVkaXQgZm9sZGVyIG5hbWVCb29rbWFyayBhbGwgdGFic0Jvb2ttYXJrIE1hbmFnZXJTZWFyY2ggYm9va21hcmtzJkJvb2ttYXJrIG1hbmFnZXJGb2xkZXJzT3JnYW5pemVTaG93IGluIGZvbGRlclJlb3JkZXIgYnkgdGl0bGVJbXBvcnQgYm9va21hcmtzIGZyb20gSFRNTCBmaWxl4oCmRXhwb3J0IGJvb2ttYXJrcyB0byBIVE1MIGZpbGXigKZJbnZhbGlkIFVSTFJlY2VudFNlYXJjaGJvb2ttYXJrc18kMS5odG1sQWRkIGJvb2ttYXJrQWRkIGZvbGRlckNsZWFyIHNlYXJjaFRvIGJvb2ttYXJrIHBhZ2VzLCBjbGljayB0aGUgc3RhciBpbiB0aGUgYWRkcmVzcyBiYXJSZW5hbWUgZm9sZGVye0NPVU5ULCBwbHVyYWwsCiAgICAgID0xIHsxIGl0ZW0gaW4gYm9va21hcmsgbGlzdH0KICAgICAgb3RoZXIgeyMgaXRlbXMgaW4gYm9va21hcmsgbGlzdH19Qm9va21hcmsgbGlzdEFkZCBuZXcgYm9va21hcmtBZGQgbmV3IGZvbGRlckNvcHkgVVJMRXhwb3J0IGJvb2ttYXJrc0hlbHAgY2VudGVySW1wb3J0IGJvb2ttYXJrc09wZW4gYWxsIGJvb2ttYXJrc09wZW4gYWxsIGluIG5ldyB3aW5kb3dPcGVuIGFsbCBpbiBpbmNvZ25pdG8gd2luZG93T3BlbiBpbiBuZXcgdGFiT3BlbiBpbiBuZXcgd2luZG93T3BlbiBpbiBpbmNvZ25pdG8gd2luZG93UmVuYW1lU29ydCBieSBuYW1lTW9yZSBhY3Rpb25zTW9yZSBhY3Rpb25zIGZvciAkMU9wZW4gc2VsZWN0ZWQgaXRlbXNPcGVuJDEgc2VsZWN0ZWRCb29rbWFyayBmb2xkZXIgdHJlZUNvbGxhcHNlICQxRXhwYW5kICQxQm9va21hcmtzRm9sZGVyIHNvcnRlZCckMScgZGVsZXRlZHtDT1VOVCwgcGx1cmFsLAogICAgICA9MSB7MSBib29rbWFyayBkZWxldGVkfQogICAgICBvdGhlciB7IyBib29rbWFya3MgZGVsZXRlZH19VVJMIGNvcGllZCckMScgY29waWVke0NPVU5ULCBwbHVyYWwsCiAgICAgID0xIHsxIGl0ZW0gY29waWVkfQogICAgICBvdGhlciB7IyBpdGVtcyBjb3BpZWR9fSZCb29rbWFya3NCb29rbWFyayB0aGlzIHBhZ2XigKZCb29rbWFyayBvcGVuIHBhZ2Vz4oCmRWRpdCBib29rbWFyayBmb3IgdGhpcyBwYWdlTWVkaWEgUm91dGVyRGlzcGxheSBvbiBhbm90aGVyIHNjcmVlbiZDYXN04oCmTGVhcm4gbW9yZUJhY2tDbG9zZVZpZXcgY2FzdCBtb2RlIGxpc3RWaWV3IGRldmljZSBsaXN0Q2FzdCB0b0Nhc3QgJDFDYXN0IGRlc2t0b3BDYXN0IHRhYkNhc3QgZmlsZVNlbGVjdCBzb3VyY2VTaGFyZSB5b3VyIHNjcmVlblN0cmVhbSBhIHZpZGVvIG9yIGF1ZGlvIGZpbGVBYm91dEVuYWJsZSBjbG91ZCBzZXJ2aWNlc0hlbHBBbHdheXMgc2hvdyBpY29uUmVwb3J0IGFuIGlzc3VlTWFuYWdlIENhc3QgZGV2aWNlc0FkZGVkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvckVuYWJsZSBjYXN0aW5nIHRvIGNsb3VkLWJhc2VkIHNlcnZpY2VzIGxpa2UgR29vZ2xlIEhhbmdvdXRzLldlbGNvbWUgdG8gdGhlIENhc3QgZXhwZXJpZW5jZSBpbiBDaHJvbWl1bSFZb3UgY2FuIHVzZSB0aGlzIGZlYXR1cmUgdG8gZGlzcGxheSBjb250ZW50IGZyb20gQ2hyb21pdW0gb24geW91ciBUViBvciBvdGhlciBkZXZpY2VzLk9rLCBnb3QgaXREaXNtaXNzRXJyb3JVbmFibGUgdG8gY2FzdCAkMS5VbmFibGUgdG8gY2FzdCBkZXNrdG9wLiAgQ2hlY2sgdG8gc2VlIGlmIHlvdSBjb25maXJtZWQgdGhlIHByb21wdCB0byBzdGFydCBzaGFyaW5nIHlvdXIgc2NyZWVuLlVuYWJsZSB0byBjYXN0IHRhYi5Pbmx5IG9uZSBzZXNzaW9uIGNhbiBiZSBjcmVhdGVkIGF0IGEgdGltZS5VbmFibGUgdG8gY2FzdCBkZXNrdG9wLlVuYWJsZSB0byBjYXN0IGZpbGUuQ2FzdGluZzogJDFDYXN0U3RvcFBsYXlQYXVzZU11dGVVbm11dGVTZWVrVm9sdW1lQ3VycmVudCB0aW1lRHVyYXRpb25TbW9vdGggTW90aW9uIFtiZXRhXVVzZSBoaWdoIGJhbmR3aWR0aCBmb3IgYmVzdCB2aWRlbyBvciBhbmltYXRpb24uIE90aGVyIHBlb3BsZSB3aXRoIHNsb3cgY29ubmVjdGlvbnMgbWF5IG5vdCBzZWUgeW91ciBjb250ZW50LkFsd2F5cyB1c2UgbWlycm9yaW5nU2hvdyBmdWxsc2NyZWVuIHZpZGVvcyBvbkJvdGggc2NyZWVuc1JlbW90ZSBzY3JlZW5ObyBDYXN0IGRlc3RpbmF0aW9ucyBmb3VuZC4gTmVlZCBoZWxwP0Rpc3BsYXkgJDFObyBtYXRjaGVzQXVkaW8vVmlkZW9Nb3JlIGFjdGlvbnPigKZWZXJzaW9uICQxICgkMikgJDMgJDRDaGVja2luZyBmb3IgdXBkYXRlc0FjY2Vzc2liaWxpdHlPcGVuIENocm9tZSBXZWIgU3RvcmVBZGQgYWNjZXNzaWJpbGl0eSBmZWF0dXJlc0VuYWJsZSBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzQXBwZWFyYW5jZUN1c3RvbUVudGVyIGN1c3RvbSB3ZWIgYWRkcmVzc0Rpc2FibGVkV2FsbHBhcGVyVGhlbWVzR1RLK1VzZSBHVEsrQ2xhc3NpY1VzZSBDbGFzc2ljU2hvdyBob21lIGJ1dHRvblNob3cgYm9va21hcmtzIGJhck5ldyBUYWIgcGFnZUNoYW5nZU9wZW4gdGhlIHdhbGxwYXBlciBhcHBBZHZhbmNlZEJhc2ljTWFpbiBtZW51U2VhcmNoIHNldHRpbmdzR28gdG8gPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQxIj5Hb29nbGUgQ2hyb21lIGhlbHA8L2E+IGlmIHlvdSBjYW4ndCBmaW5kIHdoYXQgeW91J3JlIGxvb2tpbmcgZm9yU2V0dGluZ3MkMSBpcyBjb250cm9sbGluZyB0aGlzIHNldHRpbmdDbGVhckVkaXRPbk9mZk5vdCB2YWxpZE5vdCBhIHZhbGlkIHdlYiBhZGRyZXNzUGFzc3dvcmRzIGFuZCBmb3Jtc0F1dG9maWxsIHNldHRpbmdzR29vZ2xlIFBheUFkZHJlc3Nlc0FkZCBhZGRyZXNzRWRpdCBhZGRyZXNzQ291bnRyeSAvIFJlZ2lvblBob25lRW1haWxDcmVkaXQgY2FyZHNUeXBlRW5hYmxlIEF1dG9maWxsIHRvIGZpbGwgb3V0IGZvcm1zIGluIGEgc2luZ2xlIGNsaWNrUmVtb3ZlQ2xlYXIgY29weUVkaXQgY2FyZEFkZCBjYXJkTmFtZSBvbiBjYXJkQ2FyZCBudW1iZXJFeHBpcmF0aW9uIGRhdGVFeHBpcmF0aW9uIG1vbnRoRXhwaXJhdGlvbiB5ZWFyWW91ciBjYXJkIGlzIGV4cGlyZWRNYW5hZ2UgcGFzc3dvcmRzQXV0byBTaWduLWluQXV0b21hdGljYWxseSBzaWduIGluIHRvIHdlYnNpdGVzIHVzaW5nIHN0b3JlZCBjcmVkZW50aWFscy4gSWYgZGlzYWJsZWQsIHlvdSB3aWxsIGJlIGFza2VkIGZvciBjb25maXJtYXRpb24gZXZlcnkgdGltZSBiZWZvcmUgc2lnbmluZyBpbiB0byBhIHdlYnNpdGUuT2ZmZXIgdG8gc2F2ZSB5b3VyIHdlYiBwYXNzd29yZHNTYXZlZCBQYXNzd29yZHNOZXZlciBTYXZlZERlbGV0ZSB0aGlzIGl0ZW1Eb25lU2VhcmNoIHBhc3N3b3Jkc1Nob3cgcGFzc3dvcmRIaWRlIHBhc3N3b3JkU2F2ZWQgcGFzc3dvcmQgZGV0YWlsc0RldGFpbHNXZWJzaXRlVXNlcm5hbWVQYXNzd29yZFNhdmVkIGFkZHJlc3NlcyB3aWxsIGFwcGVhciBoZXJlU2F2ZWQgY2FyZHMgd2lsbCBhcHBlYXIgaGVyZVNhdmVkIGNhcmRzIGFyZSBkaXNhYmxlZCBieSB5b3VyIGFkbWluaXN0cmF0b3JTYXZlZCBwYXNzd29yZHMgd2lsbCBhcHBlYXIgaGVyZVNpdGVzIHdoaWNoIG5ldmVyIHNhdmUgcGFzc3dvcmRzIHdpbGwgYXBwZWFyIGhlcmVVbmRvUGFzc3dvcmQgZGVsZXRlZEFjY2VzcyB5b3VyIHBhc3N3b3JkcyBmcm9tIGFueSBkZXZpY2UgYXQgPGEgaXM9ImFjdGlvbi1saW5rIiBocmVmPSIkMSIgdGFyZ2V0PSJfYmxhbmsiPnBhc3N3b3Jkcy5nb29nbGUuY29tPC9hPkV4cG9ydCBwYXNzd29yZHNZb3VyIHBhc3N3b3JkcyB3aWxsIGJlIHZpc2libGUgdG8gYW55b25lIHdobyBjYW4gc2VlIHRoZSBleHBvcnRlZCBmaWxlLkV4cG9ydCBwYXNzd29yZHPigKZEZWZhdWx0IGJyb3dzZXJNYWtlIGRlZmF1bHRZb3VyIGNlcnRpZmljYXRlc1Nob3cgY2VydGlmaWNhdGVzIGZvciBvcmdhbml6YXRpb25Zb3UgaGF2ZSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGVzZSBvcmdhbml6YXRpb25zIHRoYXQgaWRlbnRpZnkgeW91U2VydmVyc1lvdSBoYXZlIGNlcnRpZmljYXRlcyBvbiBmaWxlIHRoYXQgaWRlbnRpZnkgdGhlc2Ugc2VydmVyc1lvdSBoYXZlIG5vIGNlcnRpZmljYXRlcyBpbiB0aGlzIGNhdGVnb3J5QXV0aG9yaXRpZXNZb3UgaGF2ZSBjZXJ0aWZpY2F0ZXMgb24gZmlsZSB0aGF0IGlkZW50aWZ5IHRoZXNlIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzVmlld0ltcG9ydEltcG9ydCBhbmQgQmluZEV4cG9ydERlbGV0ZU90aGVyc1lvdSBoYXZlIGNlcnRpZmljYXRlcyBvbiBmaWxlIHRoYXQgZG8gbm90IGZpdCBpbiBhbnkgb2YgdGhlIG90aGVyIGNhdGVnb3JpZXNTU0wgQ2xpZW50IENlcnRpZmljYXRlVW50cnVzdGVkQ2VydGlmaWNhdGUgYXV0aG9yaXR5VHJ1c3Qgc2V0dGluZ3NUaGUgY2VydGlmaWNhdGUgIiQxIiByZXByZXNlbnRzIGEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHlUcnVzdCB0aGlzIGNlcnRpZmljYXRlIGZvciBpZGVudGlmeWluZyB3ZWJzaXRlc1RydXN0IHRoaXMgY2VydGlmaWNhdGUgZm9yIGlkZW50aWZ5aW5nIGVtYWlsIHVzZXJzVHJ1c3QgdGhpcyBjZXJ0aWZpY2F0ZSBmb3IgaWRlbnRpZnlpbmcgc29mdHdhcmUgbWFrZXJzRGVsZXRlICIkMSI/SWYgeW91IGRlbGV0ZSBvbmUgb2YgeW91ciBvd24gY2VydGlmaWNhdGVzLCB5b3UgY2FuIG5vIGxvbmdlciB1c2UgaXQgdG8gaWRlbnRpZnkgeW91cnNlbGYuRGVsZXRlIHNlcnZlciBjZXJ0aWZpY2F0ZSAiJDEiP0lmIHlvdSBkZWxldGUgYSBzZXJ2ZXIgY2VydGlmaWNhdGUsIHlvdSByZXN0b3JlIHRoZSB1c3VhbCBzZWN1cml0eSBjaGVja3MgZm9yIHRoYXQgc2VydmVyIGFuZCByZXF1aXJlIGl0IHVzZXMgYSB2YWxpZCBjZXJ0aWZpY2F0ZS5EZWxldGUgQ0EgY2VydGlmaWNhdGUgIiQxIj9JZiB5b3UgZGVsZXRlIGEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKENBKSBjZXJ0aWZpY2F0ZSwgeW91ciBicm93c2VyIHdpbGwgbm8gbG9uZ2VyIHRydXN0IGFueSBjZXJ0aWZpY2F0ZXMgaXNzdWVkIGJ5IHRoYXQgQ0EuRGVsZXRlIGNlcnRpZmljYXRlICIkMSI/UGxlYXNlIGVudGVyIGEgcGFzc3dvcmQgdG8gZW5jcnlwdCB0aGlzIGNlcnRpZmljYXRlRW50ZXIgeW91ciBjZXJ0aWZpY2F0ZSBwYXNzd29yZFRoZSBwYXNzd29yZCB5b3UgY2hvb3NlIHdpbGwgYmUgcmVxdWlyZWQgdG8gcmVzdG9yZSB0aGlzIGNlcnRpZmljYXRlIGxhdGVyLiBQbGVhc2UgcmVjb3JkIGl0IGluIGEgc2FmZSBsb2NhdGlvbi5Db25maXJtIHBhc3N3b3JkSW5jb3JyZWN0IHBhc3N3b3JkQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgSW1wb3J0IEVycm9yVW5hYmxlIHRvIHBhcnNlIGZpbGVDZXJ0aWZpY2F0ZSBEZWxldGlvbiBFcnJvckNlcnRpZmljYXRlIGFscmVhZHkgZXhpc3RzTm90IGEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHlUaGUgZmlsZSBjb250YWluZWQgbXVsdGlwbGUgY2VydGlmaWNhdGVzLCBub25lIG9mIHdoaWNoIHdlcmUgaW1wb3J0ZWQ6Q2VydGlmaWNhdGUgSW1wb3J0IEVycm9ySW52YWxpZCBvciBjb3JydXB0IGZpbGVJbmNvcnJlY3QgcGFzc3dvcmQgb3IgY29ycnVwdCBmaWxlVGhlIFByaXZhdGUgS2V5IGZvciB0aGlzIENsaWVudCBDZXJ0aWZpY2F0ZSBpcyBtaXNzaW5nIG9yIGludmFsaWRUaGUgZmlsZSBjb250YWluZWQgb25lIGNlcnRpZmljYXRlLCB3aGljaCB3YXMgbm90IGltcG9ydGVkOlRoZSBmaWxlIGNvbnRhaW5lZCBtdWx0aXBsZSBjZXJ0aWZpY2F0ZXMsIHNvbWUgb2Ygd2hpY2ggd2VyZSBub3QgaW1wb3J0ZWQ6RmlsZSB1c2VzIHVuc3VwcG9ydGVkIGZlYXR1cmVzUEtDUyAjMTIgRXhwb3J0IEVycm9yUEtDUyAjMTIgRmlsZXNUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgdHJ5aW5nIHRvIHJlYWQgdGhlIGZpbGU6ICQxLiQxOiAkMlNlcnZlciBDZXJ0aWZpY2F0ZSBJbXBvcnQgRXJyb3JFcnJvciBTZXR0aW5nIENlcnRpZmljYXRlIFRydXN0VW5rbm93biBlcnJvclRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSB0cnlpbmcgdG8gd3JpdGUgdGhlIGZpbGU6ICQxLkNsZWFyIHRoZSBmb2xsb3dpbmcgaXRlbXMgZnJvbVRpbWUgcmFuZ2VCcm93c2luZyBoaXN0b3J5U2lnbnMgeW91IG91dCBvZiBtb3N0IHNpdGVzLlNpZ25zIHlvdSBvdXQgb2YgbW9zdCBzaXRlcy4gWW91IHdvbid0IGJlIHNpZ25lZCBvdXQgb2YgeW91ciBHb29nbGUgQWNjb3VudC5DbGVhcnMgaGlzdG9yeSBhbmQgYXV0b2NvbXBsZXRpb25zIGluIHRoZSBhZGRyZXNzIGJhci5DbGVhcnMgaGlzdG9yeSBhbmQgYXV0b2NvbXBsZXRpb25zIGluIHRoZSBhZGRyZXNzIGJhci4gWW91ciBHb29nbGUgQWNjb3VudCBtYXkgaGF2ZSBvdGhlciBmb3JtcyBvZiBicm93c2luZyBoaXN0b3J5IGF0IDxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSckMSc+bXlhY3Rpdml0eS5nb29nbGUuY29tPC9hPi5DbGVhcnMgaGlzdG9yeSBmcm9tIGFsbCBzaWduZWQtaW4gZGV2aWNlcy4gWW91ciBHb29nbGUgQWNjb3VudCBtYXkgaGF2ZSBvdGhlciBmb3JtcyBvZiBicm93c2luZyBoaXN0b3J5IGF0IDxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSckMSc+bXlhY3Rpdml0eS5nb29nbGUuY29tPC9hPi5Eb3dubG9hZCBoaXN0b3J5Q2FjaGVkIGltYWdlcyBhbmQgZmlsZXNDb29raWVzIGFuZCBvdGhlciBzaXRlIGRhdGFDb29raWVzIGFuZCBvdGhlciBzaXRlIGFuZCBwbHVnaW4gZGF0YVBhc3N3b3Jkc0F1dG9maWxsIGZvcm0gZGF0YUhvc3RlZCBhcHAgZGF0YU1lZGlhIGxpY2Vuc2VzdGhlIHBhc3QgaG91cnRoZSBwYXN0IGRheXRoZSBwYXN0IHdlZWt0aGUgbGFzdCA0IHdlZWtzdGhlIGJlZ2lubmluZyBvZiB0aW1lTGFzdCBob3VyTGFzdCAyNCBob3Vyc0xhc3QgNyBkYXlzTGFzdCA0IHdlZWtzQWxsIHRpbWVTb21lIHNldHRpbmdzIHRoYXQgbWF5IHJlZmxlY3QgYnJvd3NpbmcgaGFiaXRzIHdpbGwgbm90IGJlIGNsZWFyZWQuVGhpcyBjbGVhcnMgc3luY2VkIGRhdGEgZnJvbSBhbGwgZGV2aWNlcy5UaGlzIHdpbGwgY2xlYXIgY29va2llcyBhbmQgc2l0ZSBkYXRhIGZvciBhbGwgc2l0ZXMsIGluY2x1ZGluZ1RoaXMgd2lsbCBjbGVhciBjb29raWVzIGFuZCBjYWNoZSBmb3IgYWxsIHNpdGVzLCBpbmNsdWRpbmdDb25maXJtTm90aWZpY2F0aW9ucyB3aWxsIGJlIGRpc2FibGVkUHJpbnRpbmdTZXQgdXAgb3IgbWFuYWdlIHByaW50ZXJzIGluIEdvb2dsZSBDbG91ZCBQcmludC5TaG93IG5vdGlmaWNhdGlvbnMgd2hlbiBuZXcgcHJpbnRlcnMgYXJlIGRldGVjdGVkIG9uIHRoZSBuZXR3b3JrTWFuYWdlIENsb3VkIFByaW50IGRldmljZXNQcmludGVyc0dvb2dsZSBDbG91ZCBQcmludERvd25sb2Fkc0xvY2F0aW9uQXNrIHdoZXJlIHRvIHNhdmUgZWFjaCBmaWxlIGJlZm9yZSBkb3dubG9hZGluZ0Rpc2Nvbm5lY3QgR29vZ2xlIERyaXZlIGFjY291bnRPcGVuIGNlcnRhaW4gZmlsZSB0eXBlcyBhdXRvbWF0aWNhbGx5IGFmdGVyIGRvd25sb2FkaW5nT24gc3RhcnR1cE9wZW4gdGhlIE5ldyBUYWIgcGFnZUNvbnRpbnVlIHdoZXJlIHlvdSBsZWZ0IG9mZk9wZW4gYSBzcGVjaWZpYyBwYWdlIG9yIHNldCBvZiBwYWdlc1VzZSBjdXJyZW50IHBhZ2VzQWRkIGEgbmV3IHBhZ2VFZGl0IHBhZ2VTaXRlIFVSTCQxIC0gJDJQbGVhc2UgZW50ZXIgYSBzaG9ydGVyIFVSTExhbmd1YWdlc0xhbmd1YWdlU2hvdyBsYW5ndWFnZSBvcHRpb25zT3JkZXIgbGFuZ3VhZ2VzIGJhc2VkIG9uIHlvdXIgcHJlZmVyZW5jZU1vdmUgdG8gdGhlIHRvcE1vdmUgdXBNb3ZlIGRvd25BZGQgbGFuZ3VhZ2VzT2ZmZXIgdG8gdHJhbnNsYXRlIHBhZ2VzIGluIHRoaXMgbGFuZ3VhZ2VPZmZlciB0byB0cmFuc2xhdGUgcGFnZXMgdGhhdCBhcmVuJ3QgaW4gYSBsYW5ndWFnZSB5b3UgcmVhZEFsbCBsYW5ndWFnZXNFbmFibGVkIGxhbmd1YWdlc1NwZWxsIGNoZWNrU2hvdyBzcGVsbCBjaGVjayBvcHRpb25zJDEsICQyJDEsICQyLCBhbmQgMSBvdGhlciQxLCAkMiwgYW5kICQzIG90aGVyc0N1c3RvbSBzcGVsbGluZ01hbmFnZSBzcGVsbCBjaGVja0FkZCBhIG5ldyB3b3JkQWRkIHdvcmRBbHJlYWR5IGFkZGVkQ2Fubm90IGV4Y2VlZCA5OSBsZXR0ZXJzQ3VzdG9tIHdvcmRzU2F2ZWQgY3VzdG9tIHdvcmRzIHdpbGwgYXBwZWFyIGhlcmVQcml2YWN5IGFuZCBzZWN1cml0eVVzZSBhIHdlYiBzZXJ2aWNlIHRvIGhlbHAgcmVzb2x2ZSBuYXZpZ2F0aW9uIGVycm9yc1VzZSBhIHByZWRpY3Rpb24gc2VydmljZSB0byBoZWxwIGNvbXBsZXRlIHNlYXJjaGVzIGFuZCBVUkxzIHR5cGVkIGluIHRoZSBhZGRyZXNzIGJhclVzZSBhIHByZWRpY3Rpb24gc2VydmljZSB0byBsb2FkIHBhZ2VzIG1vcmUgcXVpY2tseVByb3RlY3QgeW91IGFuZCB5b3VyIGRldmljZSBmcm9tIGRhbmdlcm91cyBzaXRlc0F1dG9tYXRpY2FsbHkgcmVwb3J0IGRldGFpbHMgb2YgcG9zc2libGUgc2VjdXJpdHkgaW5jaWRlbnRzIHRvIEdvb2dsZUF1dG9tYXRpY2FsbHkgc2VuZCBzb21lIHN5c3RlbSBpbmZvcm1hdGlvbiBhbmQgcGFnZSBjb250ZW50IHRvIEdvb2dsZSB0byBoZWxwIGRldGVjdCBkYW5nZXJvdXMgYXBwcyBhbmQgc2l0ZXNVc2UgYSB3ZWIgc2VydmljZSB0byBoZWxwIHJlc29sdmUgc3BlbGxpbmcgZXJyb3JzU21hcnRlciBzcGVsbC1jaGVja2luZyBieSBzZW5kaW5nIHdoYXQgeW91IHR5cGUgaW4gdGhlIGJyb3dzZXIgdG8gR29vZ2xlQXV0b21hdGljYWxseSBzZW5kIHVzYWdlIHN0YXRpc3RpY3MgYW5kIGNyYXNoIHJlcG9ydHMgdG8gR29vZ2xlQXV0b21hdGljYWxseSBzZW5kIGRpYWdub3N0aWMgYW5kIHVzYWdlIGRhdGEgdG8gR29vZ2xlU2VuZCBhICJEbyBOb3QgVHJhY2siIHJlcXVlc3Qgd2l0aCB5b3VyIGJyb3dzaW5nIHRyYWZmaWNEbyBOb3QgVHJhY2tFbmFibGluZyAiRG8gTm90IFRyYWNrIiBtZWFucyB0aGF0IGEgcmVxdWVzdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggeW91ciBicm93c2luZyB0cmFmZmljLiBBbnkgZWZmZWN0IGRlcGVuZHMgb24gd2hldGhlciBhIHdlYnNpdGUgcmVzcG9uZHMgdG8gdGhlIHJlcXVlc3QsIGFuZCBob3cgdGhlIHJlcXVlc3QgaXMgaW50ZXJwcmV0ZWQuIEZvciBleGFtcGxlLCBzb21lIHdlYnNpdGVzIG1heSByZXNwb25kIHRvIHRoaXMgcmVxdWVzdCBieSBzaG93aW5nIHlvdSBhZHMgdGhhdCBhcmVuJ3QgYmFzZWQgb24gb3RoZXIgd2Vic2l0ZXMgeW91J3ZlIHZpc2l0ZWQuIE1hbnkgd2Vic2l0ZXMgd2lsbCBzdGlsbCBjb2xsZWN0IGFuZCB1c2UgeW91ciBicm93c2luZyBkYXRhIC0gZm9yIGV4YW1wbGUgdG8gaW1wcm92ZSBzZWN1cml0eSwgdG8gcHJvdmlkZSBjb250ZW50LCBzZXJ2aWNlcywgYWRzIGFuZCByZWNvbW1lbmRhdGlvbnMgb24gdGhlaXIgd2Vic2l0ZXMsIGFuZCB0byBnZW5lcmF0ZSByZXBvcnRpbmcgc3RhdGlzdGljcy4gPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQxIj5MZWFybiBtb3JlPC9hPkVuYWJsZSBWZXJpZmllZCBBY2Nlc3NLZWVwIFdpLUZpIG9uIGR1cmluZyBzbGVlcE1hbmFnZSBjZXJ0aWZpY2F0ZXNNYW5hZ2UgSFRUUFMvU1NMIGNlcnRpZmljYXRlcyBhbmQgc2V0dGluZ3NDb250ZW50IHNldHRpbmdzU2l0ZSBTZXR0aW5nc0NvbnRyb2wgd2hhdCBpbmZvcm1hdGlvbiB3ZWJzaXRlcyBjYW4gdXNlIGFuZCB3aGF0IGNvbnRlbnQgdGhleSBjYW4gc2hvdyB5b3VDbGVhciBkYXRhQ2xlYXIgYnJvd3NpbmcgZGF0YUNsZWFyIGhpc3RvcnksIGNvb2tpZXMsIGNhY2hlLCBhbmQgbW9yZVJlc2V0U29tZSBzZXR0aW5ncyB3ZXJlIHJlc2V0UmVzdG9yZSBzZXR0aW5ncyB0byB0aGVpciBvcmlnaW5hbCBkZWZhdWx0c0Nocm9tZSBkZXRlY3RlZCB0aGF0IHNvbWUgb2YgeW91ciBzZXR0aW5ncyB3ZXJlIGNvcnJ1cHRlZCBieSBhbm90aGVyIHByb2dyYW0gYW5kIHJlc2V0IHRoZW0gdG8gdGhlaXIgb3JpZ2luYWwgZGVmYXVsdHMuUmVzZXQgYWxsIHNldHRpbmdzU2VhcmNoIGVuZ2luZVNlYXJjaCBlbmdpbmUgdXNlZCBpbiB0aGUgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQxIj5hZGRyZXNzIGJhcjwvYT5NYW5hZ2Ugc2VhcmNoIGVuZ2luZXNTZWFyY2ggRW5naW5lc0FkZCBzZWFyY2ggZW5naW5lRWRpdCBzZWFyY2ggZW5naW5lRGVmYXVsdCBzZWFyY2ggZW5naW5lc090aGVyIHNlYXJjaCBlbmdpbmVzT3RoZXIgc2F2ZWQgc2VhcmNoIGVuZ2luZXMgd2lsbCBhcHBlYXIgaGVyZVNlYXJjaCBlbmdpbmVzIGFkZGVkIGJ5IGV4dGVuc2lvbnNLZXl3b3JkUXVlcnkgVVJMVVJMIHdpdGggJXMgaW4gcGxhY2Ugb2YgcXVlcnlSZW1vdmUgZnJvbSBsaXN0TWFuYWdlZW1iZWRkZWQgb24gJDFlbWJlZGRlZCBvbiBhbnkgaG9zdFBlcm1pc3Npb24gQ2F0ZWdvcnlBbGwgc2l0ZXNBZHNBdXRvbWF0aWMgZG93bmxvYWRzQmFja2dyb3VuZCBzeW5jQ2FtZXJhQ2xpcGJvYXJkQXNrIHdoZW4gYSBzaXRlIHdhbnRzIHRvIHNlZSB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmRBc2sgd2hlbiBhIHNpdGUgd2FudHMgdG8gc2VlIHRleHQgYW5kIGltYWdlcyBjb3BpZWQgdG8gdGhlIGNsaXBib2FyZCAocmVjb21tZW5kZWQpRG8gbm90IGFsbG93IHNpdGVzIHRvIHNlZSB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmRDb29raWVzSGFuZGxlcnNNaWNyb3Bob25lTm90aWZpY2F0aW9uc0ltYWdlc0phdmFTY3JpcHRGbGFzaFBERiBkb2N1bWVudHNEb3dubG9hZCBQREYgZmlsZXMgaW5zdGVhZCBvZiBhdXRvbWF0aWNhbGx5IG9wZW5pbmcgdGhlbSBpbiBDaHJvbWVQb3B1cHNQcm90ZWN0ZWQgY29udGVudFByb3RlY3RlZCBjb250ZW50IGlkZW50aWZpZXJzQWxsb3cgc2l0ZXMgdG8gcGxheSBwcm90ZWN0ZWQgY29udGVudCAocmVjb21tZW5kZWQpVW5zYW5kYm94ZWQgcGx1Z2luIGFjY2Vzc01JREkgZGV2aWNlc0FzayB3aGVuIGEgc2l0ZSB3YW50cyB0byB1c2Ugc3lzdGVtIGV4Y2x1c2l2ZSBtZXNzYWdlcyB0byBhY2Nlc3MgTUlESSBkZXZpY2VzQXNrIHdoZW4gYSBzaXRlIHdhbnRzIHRvIHVzZSBzeXN0ZW0gZXhjbHVzaXZlIG1lc3NhZ2VzIHRvIGFjY2VzcyBNSURJIGRldmljZXMgKHJlY29tbWVuZGVkKURvIG5vdCBhbGxvdyBhbnkgc2l0ZXMgdG8gdXNlIHN5c3RlbSBleGNsdXNpdmUgbWVzc2FnZXMgdG8gYWNjZXNzIE1JREkgZGV2aWNlc1NvdW5kVVNCIGRldmljZXNSZW1vdmUgem9vbSBsZXZlbFpvb20gbGV2ZWxzU2l0ZXMgY2FuIHNhdmUgYW5kIHJlYWQgY29va2llIGRhdGFBc2sgZmlyc3RBc2sgZmlyc3QgKHJlY29tbWVuZGVkKUFzayBiZWZvcmUgYWNjZXNzaW5nQXNrIGJlZm9yZSBhY2Nlc3NpbmcgKHJlY29tbWVuZGVkKUFzayBiZWZvcmUgc2VuZGluZ0FzayBiZWZvcmUgc2VuZGluZyAocmVjb21tZW5kZWQpRG8gbm90IHNob3cgYW55IGltYWdlc1Nob3cgYWxsU2hvdyBhbGwgKHJlY29tbWVuZGVkKUFsbG93IHNpdGVzIHRvIHNhdmUgYW5kIHJlYWQgY29va2llIGRhdGFBbGxvdyBzaXRlcyB0byBzYXZlIGFuZCByZWFkIGNvb2tpZSBkYXRhIChyZWNvbW1lbmRlZClCbG9jayBzaXRlcyBmcm9tIHJ1bm5pbmcgRmxhc2hSdW4gb25seSBpbXBvcnRhbnQgY29udGVudCAocmVjb21tZW5kZWQpUnVuIG9ubHkgaW1wb3J0YW50IGNvbnRlbnRBbGxvdyByZWNlbnRseSBjbG9zZWQgc2l0ZXMgdG8gZmluaXNoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBkYXRhQWxsb3cgcmVjZW50bHkgY2xvc2VkIHNpdGVzIHRvIGZpbmlzaCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgZGF0YSAocmVjb21tZW5kZWQpRG8gbm90IGFsbG93IHJlY2VudGx5IGNsb3NlZCBzaXRlcyB0byBmaW5pc2ggc2VuZGluZyBhbmQgcmVjZWl2aW5nIGRhdGFBbGxvdyBzaXRlcyB0byBhc2sgdG8gYmVjb21lIGRlZmF1bHQgaGFuZGxlcnMgZm9yIHByb3RvY29sc0FsbG93IHNpdGVzIHRvIGFzayB0byBiZWNvbWUgZGVmYXVsdCBoYW5kbGVycyBmb3IgcHJvdG9jb2xzIChyZWNvbW1lbmRlZClEbyBub3QgYWxsb3cgYW55IHNpdGUgdG8gaGFuZGxlIHByb3RvY29sc0Jsb2NrZWQgb24gc2l0ZXMgdGhhdCB0ZW5kIHRvIHNob3cgaW50cnVzaXZlIGFkc0Jsb2NrZWQgb24gc2l0ZXMgdGhhdCB0ZW5kIHRvIHNob3cgaW50cnVzaXZlIGFkcyAocmVjb21tZW5kZWQpQWxsb3cgc2l0ZXMgdG8gcGxheSBzb3VuZEFsbG93IHNpdGVzIHRvIHBsYXkgc291bmQgKHJlY29tbWVuZGVkKU11dGUgc2l0ZXMgdGhhdCBwbGF5IHNvdW5kQXNrIHdoZW4gYSBzaXRlIHRyaWVzIHRvIGRvd25sb2FkIGZpbGVzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIGZpcnN0IGZpbGVBc2sgd2hlbiBhIHNpdGUgdHJpZXMgdG8gZG93bmxvYWQgZmlsZXMgYXV0b21hdGljYWxseSBhZnRlciB0aGUgZmlyc3QgZmlsZSAocmVjb21tZW5kZWQpRG8gbm90IGFsbG93IGFueSBzaXRlIHRvIGRvd25sb2FkIG11bHRpcGxlIGZpbGVzIGF1dG9tYXRpY2FsbHlBc2sgd2hlbiBhIHNpdGUgd2FudHMgdG8gdXNlIGEgcGx1Z2luIHRvIGFjY2VzcyB5b3VyIGNvbXB1dGVyQXNrIHdoZW4gYSBzaXRlIHdhbnRzIHRvIHVzZSBhIHBsdWdpbiB0byBhY2Nlc3MgeW91ciBjb21wdXRlciAocmVjb21tZW5kZWQpRG8gbm90IGFsbG93IGFueSBzaXRlIHRvIHVzZSBhIHBsdWdpbiB0byBhY2Nlc3MgeW91ciBjb21wdXRlckFsbG93ZWRBbGxvd2VkIChyZWNvbW1lbmRlZClCbG9ja2VkQmxvY2tlZCAocmVjb21tZW5kZWQpQWxsb3dCbG9ja011dGVkQ2xlYXIgb24gZXhpdEFzayAoZGVmYXVsdClBbGxvdyAoZGVmYXVsdClCbG9jayAoZGVmYXVsdClBc2tVc2FnZU5vIHVzYWdlIGRhdGFQZXJtaXNzaW9uc1RvIGNoYW5nZSB0aGlzIHNldHRpbmcsIGZpcnN0IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+dHVybiBvbiBpZGVudGlmaWVyczwvYT5CbG9jayBpZiBzaXRlIHRlbmRzIHRvIHNob3cgaW50cnVzaXZlIGFkc1RlbXBvcmFyaWx5IGJsb2NrZWQgdG8gcHJvdGVjdCB5b3VyIHNlY3VyaXR5QmxvY2tlZCB0byBwcm90ZWN0IHlvdXIgcHJpdmFjeVJlc2V0IHNpdGUgc2V0dGluZ3NBbGwgY29va2llcyBhbmQgc2l0ZSBkYXRhU2VlIGFsbCBjb29raWVzIGFuZCBzaXRlIGRhdGFSZW1vdmUgQWxsUmVtb3ZlIEFsbCBTaG93bkNsZWFyIHNpdGUgZGF0YSQxIGxvY2FsbHkgc3RvcmVkIGRhdGFSZXNldCBzZXR0aW5ncyBmb3IgdGhpcyBzaXRlP0Nocm9tZSB3aWxsIHJlc2V0IHBlcm1pc3Npb25zIHRvIHRoZWlyIGRlZmF1bHRzVGhpcyB3aWxsIGRlbGV0ZSBhbnkgZGF0YSBzdG9yZWQgb24geW91ciBkZXZpY2UgZm9yIGFsbCB0aGUgc2l0ZXMgc2hvd24uIERvIHlvdSB3YW50IHRvIGNvbnRpbnVlP1JlbW92ZSAkMUNsZWFyIGFsbFNlYXJjaCBjb29raWVzQmxvY2sgdGhpcmQtcGFydHkgY29va2llc1ByZXZlbnQgdGhpcmQtcGFydHkgd2Vic2l0ZXMgZnJvbSBzYXZpbmcgYW5kIHJlYWRpbmcgY29va2llIGRhdGFLZWVwIGxvY2FsIGRhdGEgb25seSB1bnRpbCB5b3UgcXVpdCB5b3VyIGJyb3dzZXJBZG9iZSBGbGFzaCBQbGF5ZXIgU3RvcmFnZSBzZXR0aW5nc0RlZmF1bHRTZXQgYXMgZGVmYXVsdEN1cnJlbnQgaW5jb2duaXRvIHNlc3Npb24gb25seUN1cnJlbnQgaW5jb2duaXRvIHNlc3Npb25DdXJyZW50IGluY29nbml0byBzZXNzaW9uICgkMSlObyBzaXRlcyBoYXZlIGJlZW4gem9vbWVkIGluIG9yIG91dE5vIHNpdGVzIGFkZGVkTm8gVVNCIGRldmljZXMgZm91bmRbKi5dZXhhbXBsZS5jb21BZGQgYSBzaXRlRWRpdCBzaXRlU2l0ZUNvbnRlbnREb21haW5QYXRoU2VuZCBmb3JBY2Nlc3NpYmxlIHRvIHNjcmlwdENyZWF0ZWRFeHBpcmVzQXBwbGljYXRpb24gY2FjaGVGbGFzaCBkYXRhTWFuaWZlc3QxIGNvb2tpZSQxIGNvb2tpZXNEZXNjcmlwdGlvbk9yaWdpblNpemUgb24gZGlza0xhc3QgbW9kaWZpZWREYXRhYmFzZSBzdG9yYWdlTG9jYWwgc3RvcmFnZU1lZGlhIGxpY2Vuc2VGaWxlIHN5c3RlbVRlbXBvcmFyeSBzdG9yYWdlUGVyc2lzdGVudCBzdG9yYWdlTGFzdCBhY2Nlc3NlZENoYW5uZWwgSURDZXJ0aWZpY2F0ZSBUeXBlU2VydmljZSBXb3JrZXJzU2NvcGVzU2hhcmVkIFdvcmtlcnNDYWNoZSBTdG9yYWdlUGVvcGxlTWFuYWdlIG90aGVyIHBlb3BsZU1hbmFnZSBzdXBlcnZpc2VkIHVzZXJzR29vZ2xlIFByb2ZpbGUgcGhvdG9NYW5hZ2VkIGJ5ICQxQmVjYXVzZSB0aGlzIGFjY291bnQgaXMgbWFuYWdlZCBieSAkMSwgeW91ciBib29rbWFya3MsIGhpc3RvcnksIHBhc3N3b3JkcywgYW5kIG90aGVyIHNldHRpbmdzIHdpbGwgYmUgY2xlYXJlZCBmcm9tIHRoaXMgZGV2aWNlLiBIb3dldmVyLCB5b3VyIGRhdGEgd2lsbCByZW1haW4gc3RvcmVkIGluIHlvdXIgR29vZ2xlIEFjY291bnQgYW5kIGNhbiBiZSBtYW5hZ2VkIG9uIDxhIGhyZWY9IiQyIiB0YXJnZXQ9Il9ibGFuayI+R29vZ2xlIERhc2hib2FyZDwvYT4uRWRpdCBwZXJzb25TaG93IGRlc2t0b3Agc2hvcnRjdXRTaWduIGluIHRvIGdldCB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3Mgb24gYWxsIHlvdXIgZGV2aWNlcy4gWW91J2xsIGFsc28gYXV0b21hdGljYWxseSBiZSBzaWduZWQgaW4gdG8geW91ciBHb29nbGUgc2VydmljZXMuU2lnbiBPdXRDaGFuZ2VzIHRvIHlvdXIgYm9va21hcmtzLCBoaXN0b3J5LCBwYXNzd29yZHMsIGFuZCBvdGhlciBzZXR0aW5ncyB3aWxsIG5vIGxvbmdlciBiZSBzeW5jZWQgdG8geW91ciBHb29nbGUgQWNjb3VudC4gSG93ZXZlciwgeW91ciBleGlzdGluZyBkYXRhIHdpbGwgcmVtYWluIHN0b3JlZCBpbiB5b3VyIEdvb2dsZSBBY2NvdW50IGFuZCBjYW4gYmUgbWFuYWdlZCBvbiA8YSBocmVmPSIkMSIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBEYXNoYm9hcmQ8L2E+LlNob3cgcHJvZmlsZSBzdGF0c0Fsc28gcmVtb3ZlIHlvdXIgZXhpc3RpbmcgZGF0YSBmcm9tIHRoaXMgZGV2aWNlQ2xlYXIgYW5kIFNpZ24gT3V0U3luY0FkdmFuY2VkIHN5bmMgc2V0dGluZ3NQbGVhc2Ugd2FpdOKApkNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbi4gSWYgdGhlIHByb2JsZW0gY29udGludWVzLCB0cnkgc2lnbmluZyBvdXQgYW5kIHNpZ25pbmcgaW4gYWdhaW4uU3luYyBldmVyeXRoaW5nRXh0ZW5zaW9uc0F1dG9maWxsSGlzdG9yeVRoZW1lcyAmIFdhbGxwYXBlcnNDcmVkaXQgY2FyZHMgYW5kIGFkZHJlc3NlcyB1c2luZyBHb29nbGUgUGF5Lk9wZW4gVGFic01hbmFnZSBzeW5jZWQgZGF0YSBvbiBHb29nbGUgRGFzaGJvYXJkRW5jcnlwdGlvbiBvcHRpb25zRW5jcnlwdCBzeW5jZWQgcGFzc3dvcmRzIHdpdGggeW91ciBHb29nbGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkRW5jcnlwdCBzeW5jZWQgZGF0YSB3aXRoIHlvdXIgb3duIDxhIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+c3luYyBwYXNzcGhyYXNlPC9hPk9ubHkgc29tZW9uZSB3aXRoIHlvdXIgcGFzc3BocmFzZSBjYW4gcmVhZCB5b3VyIGVuY3J5cHRlZCBkYXRhLiBUaGUgcGFzc3BocmFzZSBpcyBub3Qgc2VudCB0byBvciBzdG9yZWQgYnkgR29vZ2xlLiBJZiB5b3UgZm9yZ2V0IHlvdXIgcGFzc3BocmFzZSBvciB3YW50IHRvIGNoYW5nZSB0aGlzIHNldHRpbmcsIHlvdSdsbCBuZWVkIHRvIDxhIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+cmVzZXQgc3luYzwvYT4uVG8gY2hhbmdlIHRoaXMgc2V0dGluZywgPGEgaHJlZj0iJDEiIHRhcmdldD0iX2JsYW5rIj5yZXNldCBzeW5jPC9hPi5FbXB0eSBwYXNzcGhyYXNlIGlzIG5vdCBhbGxvd2VkWW91IG11c3QgZW50ZXIgdGhlIHNhbWUgcGFzc3BocmFzZSB0d2ljZVRoZSBwYXNzcGhyYXNlIHlvdSBlbnRlcmVkIGlzIGluY29ycmVjdElmIHlvdSBmb3Jnb3QgeW91ciBwYXNzcGhyYXNlIG9yIHdhbnQgdG8gY2hhbmdlIHRoaXMgc2V0dGluZywgPGEgaHJlZj0iJDEiIHRhcmdldD0iX2JsYW5rIj5yZXNldCBzeW5jPC9hPi5QYXNzcGhyYXNlQ29uZmlybSBwYXNzcGhyYXNlU3VibWl0VXNlIGRlZmF1bHQgc2V0dGluZ3NQZXJzb25hbGl6ZSBHb29nbGUgc2VydmljZXNDb250cm9sIGhvdyB5b3VyIGJyb3dzaW5nIGhpc3RvcnkgcGVyc29uYWxpemVzIFNlYXJjaCwgYWRzLCBhbmQgb3RoZXIgR29vZ2xlIHNlcnZpY2VzSW1wb3J0IGJvb2ttYXJrcyBhbmQgc2V0dGluZ3NGcm9tOlNlbGVjdCBpdGVtcyB0byBpbXBvcnQ6TG9hZGluZ+KApkZhdm9yaXRlcy9Cb29rbWFya3NTYXZlZCBwYXNzd29yZHNTZWFyY2ggZW5naW5lc0Nob29zZSBGaWxlWW91ciBib29rbWFya3MgYW5kIHNldHRpbmdzIGFyZSByZWFkeU5vIHN1cHBvcnRlZCBicm93c2VyIGZvdW5kV2ViIGNvbnRlbnRQYWdlIHpvb21Gb250IHNpemVWZXJ5IHNtYWxsU21hbGxNZWRpdW0gKFJlY29tbWVuZGVkKUxhcmdlVmVyeSBsYXJnZUN1c3RvbWl6ZSBmb250c0ZvbnRzU3RhbmRhcmQgZm9udFNlcmlmIGZvbnRTYW5zLXNlcmlmIGZvbnRGaXhlZC13aWR0aCBmb250TWluaW11bSBmb250IHNpemVUaW55SHVnZUxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuQWR2YW5jZWQgZm9udCBzZXR0aW5nc09wZW4gZXh0ZW5zaW9uIG9wdGlvbnNUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nUmVxdWlyZXMgZXh0ZW5zaW9uIGZyb20gdGhlIENocm9tZSBXZWIgU3RvcmVTeXN0ZW1PcGVuIHByb3h5IHNldHRpbmdzQSBzaXRlIG1heSBoYXZlIHN0b2xlbiB5b3VyIHBhc3N3b3JkWW91ciBwYXNzd29yZCBtYXkgYmUgY29tcHJvbWlzZWRUbyBwcm90ZWN0IHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24sIGNoYW5nZSB5b3VyIHBhc3N3b3JkIG5vdy4gQmVmb3JlIHlvdSBjYW4gY2hhbmdlIHlvdXIgcGFzc3dvcmQsIHlvdeKAmWxsIGJlIGFza2VkIHRvIHNpZ24gaW4uQ2hhbmdlIFBhc3N3b3JkRGV2ZWxvcGVyIG1vZGVUaGlzIGV4dGVuc2lvbiBpcyBvdXRkYXRlZCBhbmQgZGlzYWJsZWQgYnkgZW50ZXJwcmlzZSBwb2xpY3kuIEl0IG1pZ2h0IGJlY29tZSBlbmFibGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhIG5ld2VyIHZlcnNpb24gaXMgYXZhaWxhYmxlLkVycm9yc2Fub255bW91cyBmdW5jdGlvbkNvbnRleHRVbmtub3duQ2xlYXIgZW50cnlWaWV3IGluIERldmVsb3BlciBUb29sc1N0YWNrIFRyYWNle0xJTkVfQ09VTlQsIHBsdXJhbCwKICAgICAgPTEgezwxIGxpbmUgbm90IHNob3duPn0KICAgICAgb3RoZXIgezwkMSBsaW5lcyBub3Qgc2hvd24+fX1FeHRlbnNpb24gbWFuYWdlbWVudCBpcyBub3QgYXZhaWxhYmxlIHRvIEd1ZXN0IHVzZXJzLiBQbGVhc2Ugc2lnbiBpbiB0byBtYW5hZ2UgZXh0ZW5zaW9ucy48c3Bhbj5JRDogPC9zcGFuPiQxSW5zcGVjdCB2aWV3cyQxIG1vcmXigKZObyBhY3RpdmUgdmlld3NBbGxvdyBpbiBpbmNvZ25pdG9UaGUgZm9sbG93aW5nIGV4dGVuc2lvbnMgZGVwZW5kIG9uIHRoaXMgZXh0ZW5zaW9uOiQxIChJRDogJDIpUmVsYXRlZCB0byAkMUFwcCBJY29uRXh0ZW5zaW9uIEljb25JREV4dGVuc2lvbiBFbmFibGVkQXBwIEVuYWJsZWRPcGVuIGV4dGVuc2lvbiB3ZWJzaXRlVmlldyBpbiBDaHJvbWUgV2ViIFN0b3JlRXh0ZW5zaW9uIG9wdGlvbnNUaGlzIGV4dGVuc2lvbiByZXF1aXJlcyBubyBzcGVjaWFsIHBlcm1pc3Npb25zUmVtb3ZlIGV4dGVuc2lvblNvdXJjZUFkZGVkIGJ5IHBvbGljeUFkZGVkIGJ5IGEgdGhpcmQtcGFydHlVbnBhY2tlZCBleHRlbnNpb25DaHJvbWUgV2ViIFN0b3JlVmVyc2lvbkZhaWxlZCB0byBsb2FkIGV4dGVuc2lvbkZpbGVDb3VsZCBub3QgbG9hZCBtYW5pZmVzdC5SZXRyeUZpbmQgZXh0ZW5zaW9ucyBhbmQgdGhlbWVzIGluIHRoZSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS93ZWJzdG9yZS9jYXRlZ29yeS9leHRlbnNpb25zIj5DaHJvbWUgV2ViIFN0b3JlPC9hPk5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkUGFjayBleHRlbnNpb25QYWNrIGV4dGVuc2lvbiB3YXJuaW5nUGFjayBleHRlbnNpb24gZXJyb3JQcm9jZWVkIGFueXdheUJyb3dzZUV4dGVuc2lvbiByb290IGRpcmVjdG9yeVByaXZhdGUga2V5IGZpbGUgKG9wdGlvbmFsKVNlYXJjaCBleHRlbnNpb25zTm90IHNldFNjb3BlR2xvYmFsQ2hyb21lIEFwcHNLZXlib2FyZCBzaG9ydGN1dHNMb2FkIHVucGFja2VkVXBkYXRlVXBkYXRlIGV4dGVuc2lvbnMgbm93RXh0ZW5zaW9ucyB1cGRhdGVkVHlwZSBhIHNob3J0Y3V0SW5jbHVkZSBlaXRoZXIgQ3RybCBvciBBbHRVc2UgZWl0aGVyIEN0cmwgb3IgQWx0VHlwZSBhIGxldHRlciQxIGhhcyBjcmFzaGVkLiBDbGljayB0aGlzIGJhbGxvb24gdG8gcmVzdGFydCB0aGUgYXBwLiQxIGhhcyBjcmFzaGVkLiBDbGljayB0aGlzIGJhbGxvb24gdG8gcmVsb2FkIHRoZSBleHRlbnNpb24uTm8gYmFja2dyb3VuZCBhcHBzIHJ1bm5pbmdSZW1lbWJlciBteSBkZWNpc2lvbiQxIHdhbnRzIHRvJDEgaGFzIGEgcGVybWlzc2lvbiByZXF1ZXN0LkN1c3RvbWl6ZURpZCB5b3UgbWVhbiB0byBnbyB0byAkMT9TZWFyY2ggaGlzdG9yeUNocm9tZSBoaXN0b3J5Tm8gdGFicyBmcm9tIG90aGVyIGRldmljZXNUYWJzIGZyb20gb3RoZXIgZGV2aWNlc1NpZ24gaW4gdG8gQ2hyb21lQ29udGludWUgZnJvbSBhbm90aGVyIGRldmljZVRvIGdldCB5b3VyIHRhYnMgZnJvbSB5b3VyIG90aGVyIGRldmljZXMsIHNpZ24gaW4gdG8gQ2hyb21lLllvdSBjYW4gY2xlYXIgeW91ciBicm93c2luZyBkYXRhIGZyb20gdGhpcyBtZW51VW5kbyBEZWxldGUmRWRpdERpc2FibGVXcml0aW5nIERpcmVjdGlvbkxlZnQgdG8gUmlnaHRSaWdodCB0byBMZWZ0U2VhcmNoIHJlc3VsdHMgZm9yICckMSdObyBzZWFyY2ggcmVzdWx0cyBmb3VuZEkmbnNwZWN0JkJhY2smRm9yd2FyZFNhdmUgJmFz4oCmJlByaW504oCmJlZpZXcgcGFnZSBzb3VyY2VPcGVuIGxpbmsgd2l0aOKApkNvbmZpZ3VyZeKApkluc3BlY3QgJmJhY2tncm91bmQgcGFnZSZSZWxvYWRTaW11bGF0ZSBicm93c2VyIHJlc3RhcnQmUmVsb2FkIGFwcCZUcmFuc2xhdGUgdG8gJDFFeGl0IGZ1bGwgc2NyZWVuUmVsb2FkICZmcmFtZSZWaWV3IGZyYW1lIHNvdXJjZU9wZW4gbGluayBpbiBuZXcgJnRhYk9wZW4gbGluayBpbiBuZXcgJndpbmRvd09wZW4gbGluayBpbiBpbmNvJmduaXRvIHdpbmRvd09wZW4gbGluayBhc09wZW4gbGluayBhcyAkMU9wZW4gbGluayBpbiAkMU9wZW4gbGluayBpbiBuZXcgJDEgd2luZG93U2F2ZSBsaW4mayBhc+KApkNvcHkgbGluayBhZGRyJmVzc0NvcHkgJmVtYWlsIGFkZHJlc3NDb3B5IGxpbmsgdGUmeHRTYSZ2ZSBpbWFnZSBhc+KApkMmb3B5IGltYWdlIGFkZHJlc3NDb3AmeSBpbWFnZU9wZW4gJmltYWdlIGluIG5ldyB0YWJPcGVuIG9yaWdpbmFsICZpbWFnZSBpbiBuZXcgdGFiTG9hZCBpbWFnZSZMb29wU2hvdyAmY29udHJvbHNSb3RhdGUgJmNsb2Nrd2lzZVJvdGF0ZSBjJm91bnRlcmNsb2Nrd2lzZVNhJnZlIHZpZGVvIGFz4oCmQyZvcHkgdmlkZW8gYWRkcmVzcyZPcGVuIHZpZGVvIGluIG5ldyB0YWJTYSZ2ZSBhdWRpbyBhc+KApkMmb3B5IGF1ZGlvIGFkZHJlc3MmT3BlbiBhdWRpbyBpbiBuZXcgdGFiUGljdHVyZSBpbiBQaWN0dXJlJlVuZG8mUmVkb0N1JnQmQ29weSZQYXN0ZVBhc3RlIGFzIHBsYWluIHRleHQmQWRkIHRvIGRpY3Rpb25hcnlBc2sgR29vZ2xlIGZvciBzdWdnZXN0aW9uc0VuYWJsZU5vIHRoYW5rc0xvYWRpbmcgc3VnZ2VzdGlvbk5vIG1vcmUgc3VnZ2VzdGlvbnMgZnJvbSBHb29nbGVTZWxlY3QgJmFsbCZTZWFyY2ggJDEgZm9yIOKAnCQy4oCdJlNlYXJjaCAkMSBmb3IgaW1hZ2UmR28gdG8gJDFTYXZlIHBhc3N3b3JkR2VuZXJhdGUgcGFzc3dvcmTigKZNb3JlT3BlbiB3aXRoICQxUnVuIHRoaXMgcGx1Z2luSGlkZSB0aGlzIHBsdWdpbkVuYWJsZSBGbGFzaCZMYW5ndWFnZSBzZXR0aW5ncyZTcGVsbGNoZWNrJkFsbCB5b3VyIGxhbmd1YWdlcyZDaGVjayB0aGUgc3BlbGxpbmcgb2YgdGV4dCBmaWVsZHNOZXcgJnRhYiZTaG93IGFzIHRhYiZOZXcgd2luZG93TmV3ICZpbmNvZ25pdG8gd2luZG93UGluIHRoaXMgcGFnZSB0byBTdGFydCBzY3JlZW7igKYmRmluZOKAplNhdmUgcGFnZSAmYXPigKZEaXN0aWxsIHBhZ2VNb3JlIHRvbyZscyZab29tWm9vbSZMYXJnZXIrJk5vcm1hbCZTbWFsbGVy4oiSQ29weSAmVVJMJlNpdGUgc2V0dGluZ3NNYWtlIFRleHQgTGFyZ2VyTWFrZSBUZXh0IFNtYWxsZXJWaWV3IHMmb3VyY2UmUmVwb3J0IGFuIGlzc3Vl4oCmJkRldmVsb3BlciB0b29scyZKYXZhU2NyaXB0IGNvbnNvbGUmSW5zcGVjdCBkZXZpY2VzJlRhc2sgbWFuYWdlclQmYWtlIHNjcmVlbnNob3RSJmVvcGVuIGNsb3NlZCB0YWJSJmVvcGVuIGNsb3NlZCB3aW5kb3dQcmVmZXJlbmNlc1NvZnR3YXJlIGluY29tcGF0aWJpbGl0eTogTGVhcm4gbW9yZUgmZWxwSW1wb3J0IGJvb2ttYXJrcyBhbmQgc2V0dGluZ3PigKYmUHJvZmlsaW5nIGVuYWJsZWQmRnVsbCBzY3JlZW4mQ2xlYXIgYnJvd3NpbmcgZGF0YeKApiZEb3dubG9hZHMmRXh0ZW5zaW9ucyZTZXR0aW5ncyZPcHRpb25zSCZlbHAgY2VudGVyQmV0YSBmb3J1bUdldCBIJmVscEUmeGl0IC0gJkVkaXQgc2VhcmNoIGVuZ2luZXPigKZEZWZhdWx0IHNlYXJjaCBzZXR0aW5ncyQxIChEZWZhdWx0KUNsb3NlIGRvd25sb2FkcyBiYXJEb3dubG9hZCBzdGFydGVkRG93bmxvYWQgZXJyb3JJbnN1ZmZpY2llbnQgcGVybWlzc2lvbnNDYW5ub3Qgc2F2ZSBkdWUgdG8gaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLiBQbGVhc2Ugc2F2ZSB0byBhbm90aGVyIGxvY2F0aW9uLlBhdGggdG9vIGxvbmdUaGUgZmlsZSBwYXRoIG9yIG5hbWUgaXMgdG9vIGxvbmcuICBQbGVhc2Ugc2F2ZSB3aXRoIGEgc2hvcnRlciBuYW1lIG9yIHRvIGFub3RoZXIgbG9jYXRpb24uRGlzayBmdWxsWW91ciBoYXJkIGRpc2sgaXMgZnVsbC4gIFBsZWFzZSBzYXZlIHRvIGFub3RoZXIgbG9jYXRpb24gb3IgbWFrZSBtb3JlIHJvb20gb24gdGhlIGhhcmQgZGlzay5GaWxlIHRvbyBsYXJnZVRoZSBmaWxlIGlzIHRvbyBsYXJnZSBmb3IgeW91ciBjb21wdXRlciB0byBoYW5kbGUuIFNvcnJ5LlN5c3RlbSBidXN5WW91ciBjb21wdXRlciBpcyBkb2luZyB0b28gbWFueSB0aGluZ3MgcmlnaHQgbm93LiAgVHJ5IGFnYWluIGxhdGVyLlZpcnVzIGRldGVjdGVkQW50aS12aXJ1cyBzb2Z0d2FyZSBkZXRlY3RlZCBhIHZpcnVzLlNlY3VyaXR5IHNldHRpbmdzIG9uIHlvdXIgY29tcHV0ZXIgYmxvY2tlZCB0aGlzIGZpbGUuRmlsZSBpbmNvbXBsZXRlRGVzdGluYXRpb24gZmlsZSB3YXMgaW5jb21wbGV0ZSBkdWUgdG8gYSBjb25uZWN0aW9uIGlzc3VlLlZpcnVzIHNjYW4gZmFpbGVkQW50aS12aXJ1cyBzb2Z0d2FyZSBmYWlsZWQgdW5leHBlY3RlZGx5IHdoaWxlIHNjYW5uaW5nIHRoaXMgZmlsZS5GaWxlIHRydW5jYXRlZERlc3RpbmF0aW9uIGZpbGUgd2FzIHRydW5jYXRlZCBvciByZW1vdmVkIHNpbmNlIGxhc3QgZG93bmxvYWQuQWxyZWFkeSBkb3dubG9hZGVkVGhlIGZpbGUgYWxyZWFkeSBleGlzdHMgaW4geW91ciBkb3dubG9hZCBmb2xkZXIuTmV0d29yayB0aW1lb3V0VGhlIGRvd25sb2FkIHdhcyB0YWtpbmcgdG9vIGxvbmcgYW5kIHdhcyBzdG9wcGVkIGJ5IHRoZSBuZXR3b3JrLk5ldHdvcmsgZGlzY29ubmVjdGVkSW50ZXJuZXQgZGlzY29ubmVjdGVkLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uU2VydmVyIHVuYXZhaWxhYmxlU2VydmVyIHVuYXZhaWxhYmxlLk5ldHdvcmsgZXJyb3JVbmtub3duIG5ldHdvcmsgZXJyb3IuTm8gZmlsZVRoZSBzZXJ2ZXIgY291bGQgbm90IGZpbmQgdGhlIGZpbGUuU2VydmVyIHByb2JsZW1Vbmtub3duIHNlcnZlciBlcnJvci4gUGxlYXNlIHRyeSBhZ2Fpbiwgb3IgY29udGFjdCB0aGUgc2VydmVyIGFkbWluaXN0cmF0b3IuU2h1dGRvd25UaGUgYnJvd3NlciB3YXMgc2h1dCBkb3duIGJlZm9yZSB0aGUgZG93bmxvYWQgY29tcGxldGVkLkNyYXNoVGhlIGJyb3dzZXIgY3Jhc2hlZCBiZWZvcmUgdGhlIGRvd25sb2FkIGNvbXBsZXRlZC5OZWVkcyBhdXRob3JpemF0aW9uU2VydmVyIGRpZCBub3QgYXV0aG9yaXplIHlvdSB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZS5CYWQgY2VydGlmaWNhdGVUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggc2VydmVyJ3MgY2VydGlmaWNhdGUuRm9yYmlkZGVuQWNjZXNzIHRvIHRoaXMgcmVzb3VyY2Ugd2FzIGZvcmJpZGRlbiBieSB0aGUgc2VydmVyLlNlcnZlciB1bnJlYWNoYWJsZVRoZSBzZXJ2ZXIgbWF5IGJlIHVucmVhY2hhYmxlLiBUcnkgYWdhaW4gbGF0ZXIuT3BlbiB3aGVuIGRvbmVTdGFydGluZ+KApiQxIGZyb20gJDIsICQzJDEvJDJPcGVuaW5nIGluICQx4oCmT3BlbmluZyB3aGVuIGNvbXBsZXRlT3BlbmluZyAkMeKApkluIHByb2dyZXNzQ2FuY2VsZWRSZW1vdmVkRmFpbGVkIC0gJDFVbmNvbmZpcm1lZFRoaXMgdHlwZSBvZiBmaWxlIGNhbiBoYXJtIHlvdXIgY29tcHV0ZXIuIERvIHlvdSB3YW50IHRvIGtlZXAgJDEgYW55d2F5P0V4dGVuc2lvbnMsIGFwcHMsIGFuZCB0aGVtZXMgY2FuIGhhcm0geW91ciBjb21wdXRlci4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlPyQxIGlzIG5vdCBjb21tb25seSBkb3dubG9hZGVkIGFuZCBtYXkgYmUgZGFuZ2Vyb3VzLlRoaXMgZmlsZSBpcyBub3QgY29tbW9ubHkgZG93bmxvYWRlZCBhbmQgbWF5IGJlIGRhbmdlcm91cy5UaGlzIHR5cGUgb2YgZmlsZSBtYXkgaGFybSB5b3VyIGNvbXB1dGVyLkNvbmZpcm0gRG93bmxvYWRLZWVwIGRhbmdlcm91cyBmaWxlP0tlZXAgZmlsZT9UaGlzIGZpbGUgbWF5IGJlIGhhcm1mdWwgZm9yIHlvdXIgY29tcHV0ZXIuRXZlbiBpZiB5b3UgaGF2ZSBkb3dubG9hZGVkIGZpbGVzIGZyb20gdGhpcyBzaXRlIGJlZm9yZSwgdGhlIHNpdGUgbWF5IGJlIHRlbXBvcmFyaWx5IHVuc2FmZSAoaGFja2VkKS4gVHJ5IGRvd25sb2FkaW5nIHRoaXMgZmlsZSBsYXRlci5LZWVwIGFueXdheUtlZXBLZWVwIGRhbmdlcm91cyBmaWxlQ29udGludWVEaXNjYXJkU2VhcmNoIGRvd25sb2Fkc0ZpbGVzIHlvdSBkb3dubG9hZCBhcHBlYXIgaGVyZVJlc3VtZUNhbmNlbFNob3cgYWxsIGRvd25sb2Fkc0RlbGV0ZWQkMSAtICQyLCAkMyQxIG9mICQyUGF1c2VkT3BlbiBkb3dubG9hZHMgZm9sZGVyRG93bmxvYWRlZCBieSA8YSBocmVmPSIkMSI+JDI8L2E+RG93bmxvYWRlZCBpbiBJbmNvZ25pdG9Db3B5IHRvIGNsaXBib2FyZEFubm90YXRlIGltYWdlJlNob3cgaW4gZm9sZGVyT3BlbiB3aGVuICZkb25lJk9wZW4mQWx3YXlzIG9wZW4gZmlsZXMgb2YgdGhpcyB0eXBlT3BlbiB3aXRoIHN5c3RlbSB2aWV3ZXJBbHdheXMgb3BlbiB3aXRoIHN5c3RlbSB2aWV3ZXImQ2FuY2VsJlBhdXNlJlJlc3VtZSZEaXNjYXJkJktlZXAmTGVhcm4gbW9yZSZNb3JlIGluZm9ybWF0aW9ue05VTV9ET1dOTE9BRCwgcGx1cmFsLAogICAgICAgPTEge0Rvd25sb2FkIGluIHByb2dyZXNzfSBvdGhlciB7RG93bmxvYWRzIGluIHByb2dyZXNzfX17TlVNX0RPV05MT0FELCBwbHVyYWwsCiAgICAgICAgPTEge0NhbmNlbCBkb3dubG9hZH0gb3RoZXIge0NhbmNlbCBkb3dubG9hZHN9fXtOVU1fRE9XTkxPQUQsIHBsdXJhbCwgPTEge0NvbnRpbnVlIGRvd25sb2FkfSBvdGhlciB7Q29udGludWUgZG93bmxvYWRzfX17TlVNX0RPV05MT0FELCBwbHVyYWwsCiAgICAgICAgPTEge0EgZG93bmxvYWQgaXMgY3VycmVudGx5IGluIHByb2dyZXNzLiBEbyB5b3Ugd2FudCB0byBjYW5jZWwgdGhlIGRvd25sb2FkIGFuZCBleGl0IGluY29nbml0byBtb2RlP30KICAgICAgICBvdGhlciB7IyBkb3dubG9hZHMgYXJlIGN1cnJlbnRseSBpbiBwcm9ncmVzcy4gRG8geW91IHdhbnQgdG8gY2FuY2VsIHRoZSBkb3dubG9hZHMgYW5kIGV4aXQgaW5jb2duaXRvIG1vZGU/fX1ZZXMsIEkgd2FudCB0byBoZWxwQWRkIHRvIGRlc2t0b3BJbnN0YWxsIHRvIGRlc2t0b3BTaG9ydGN1dCBuYW1lT3BlbiBhcyB3aW5kb3dBZGQgdG8gZGVza3RvcOKApkluc3RhbGwgdG8gZGVza3RvcOKAplZpZXcgaW4gc3RvcmVEZXZlbG9wZXIgd2Vic2l0ZU1hbmFnZSBzdXBwb3J0ZWQgbGlua3NPdmVydmlld1JlbW92ZeKApkxpY2Vuc2VzU2l6ZTpWZXJzaW9uOkNyZWF0ZSBzaG9ydGN1dHPigKZDYWxjdWxhdGluZ+KApjwgMSBNQlJldm9rZSB0aGUgcGVybWlzc2lvbiAnJDEnVGhpcyBhcHAgcmVxdWlyZXMgbm8gc3BlY2lhbCBwZXJtaXNzaW9ucy5UaGlzIGV4dGVuc2lvbiByZXF1aXJlcyBubyBzcGVjaWFsIHBlcm1pc3Npb25zLntOVU1fRklMRVMsIHBsdXJhbCwKICAgICAgICAgICA9MSB7QWNjZXNzIGEgZmlsZSBzdG9yZWQgb24geW91ciBjb21wdXRlcn0KICAgICAgICAgICBvdGhlciB7QWNjZXNzICMgZmlsZXMgc3RvcmVkIG9uIHlvdXIgY29tcHV0ZXJ9fXtOVU1fREVWSUNFUywgcGx1cmFsLAogICAgICAgICA9MSB7Q29tbXVuaWNhdGUgd2l0aCBhIFVTQiBkZXZpY2V9CiAgICAgICAgIG90aGVyIHtDb21tdW5pY2F0ZSB3aXRoICMgVVNCIGRldmljZXN9fUNyZWF0ZSBhcHBsaWNhdGlvbiBzaG9ydGN1dHNBZGQgc2hvcnRjdXRzIHRvIHRoZSBmb2xsb3dpbmcgcGxhY2VzOkRlc2t0b3BBcHBsaWNhdGlvbnMgbWVudUNyZWF0ZVNoYXJlIHZpYUNob29zZSBhbiBhcHAgdG8gc2hhcmUgdG86U2hhcmUkMSAoJDIp4oCiICAkMUF1dG9tYXRpYyBEb3dubG9hZHNDb250aW51ZSBibG9ja2luZyBhdXRvbWF0aWMgZG93bmxvYWRzIG9mIG11bHRpcGxlIGZpbGVzQWx3YXlzIGFsbG93ICQxIHRvIGRvd25sb2FkIG11bHRpcGxlIGZpbGVzTWFuYWdlIGRvd25sb2FkIHNldHRpbmdz4oCmVGhpcyBzaXRlIGF0dGVtcHRlZCB0byBkb3dubG9hZCBtdWx0aXBsZSBmaWxlcyBhdXRvbWF0aWNhbGx5LkRvd25sb2FkIGJsb2NrZWRUaGlzIHNpdGUgZG93bmxvYWRlZCBtdWx0aXBsZSBmaWxlcyBhdXRvbWF0aWNhbGx5LkNvbnRpbnVlIGFsbG93aW5nIGF1dG9tYXRpYyBkb3dubG9hZHMgb2YgbXVsdGlwbGUgZmlsZXNBbHdheXMgYmxvY2sgbXVsdGlwbGUgYXV0b21hdGljIGRvd25sb2FkcyBvbiAkMUNvb2tpZXMgYmxvY2tlZENvb2tpZXMgc2V0VGhpcyBwYWdlIHdhcyBwcmV2ZW50ZWQgZnJvbSBzZXR0aW5nIGNvb2tpZXMuVGhpcyBwYWdlIHNldCBjb29raWVzLk1hbmFnZSBjb29raWUgYmxvY2tpbmfigKZTaG93IGNvb2tpZXMgYW5kIG90aGVyIHNpdGUgZGF0YeKApkltYWdlcyBibG9ja2VkSW1hZ2VzIHdlcmUgYmxvY2tlZCBvbiB0aGlzIHBhZ2UuQWx3YXlzIGFsbG93ICQxIHRvIHNldCBjb29raWVzQWx3YXlzIGFsbG93ICQxIHRvIHNob3cgaW1hZ2VzQ29udGludWUgYmxvY2tpbmcgY29va2llc0NvbnRpbnVlIGFsbG93aW5nIGNvb2tpZXNBbHdheXMgYmxvY2sgY29va2llcyBvbiAkMUNvbnRpbnVlIGJsb2NraW5nIGltYWdlc01hbmFnZSBpbWFnZSBibG9ja2luZ+KAplBvcC11cHMgd2VyZSBibG9ja2VkIG9uIHRoaXMgcGFnZS5Qb3AtdXBzIGJsb2NrZWRUaGUgZm9sbG93aW5nIHBvcC11cHMgd2VyZSBibG9ja2VkIG9uIHRoaXMgcGFnZTpBbHdheXMgYWxsb3cgcG9wLXVwcyBmcm9tICQxQ29udGludWUgYmxvY2tpbmcgcG9wLXVwc01hbmFnZSBwb3AtdXAgYmxvY2tpbmfigKZBbHdheXMgYWxsb3cgJDEgdG8gYWNjZXNzIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lQWx3YXlzIGFsbG93ICQxIHRvIGFjY2VzcyB5b3VyIG1pY3JvcGhvbmVBbHdheXMgYWxsb3cgJDEgdG8gYWNjZXNzIHlvdXIgY2FtZXJhQXNrIGlmICQxIHdhbnRzIHRvIGFjY2VzcyB5b3VyIGNhbWVyYSBhbmQgbWljcm9waG9uZUFzayBpZiAkMSB3YW50cyB0byBhY2Nlc3MgeW91ciBtaWNyb3Bob25lQXNrIGlmICQxIHdhbnRzIHRvIGFjY2VzcyB5b3VyIGNhbWVyYUFsd2F5cyBibG9jayBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgYWNjZXNzQWx3YXlzIGJsb2NrIG1pY3JvcGhvbmUgYWNjZXNzQWx3YXlzIGJsb2NrIGNhbWVyYSBhY2Nlc3NDb250aW51ZSBibG9ja2luZyBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgYWNjZXNzQ29udGludWUgYmxvY2tpbmcgbWljcm9waG9uZSBhY2Nlc3NDb250aW51ZSBibG9ja2luZyBjYW1lcmEgYWNjZXNzQ29udGludWUgYWxsb3dpbmcgJDEgdG8gYWNjZXNzIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lQ29udGludWUgYWxsb3dpbmcgJDEgdG8gYWNjZXNzIHlvdXIgbWljcm9waG9uZUNvbnRpbnVlIGFsbG93aW5nICQxIHRvIGFjY2VzcyB5b3VyIGNhbWVyYVBvcC11cCBibG9ja2VkUGx1Z2luIGJsb2NrZWRKYXZhU2NyaXB0IGJsb2NrZWRKYXZhU2NyaXB0IHdhcyBibG9ja2VkIG9uIHRoaXMgcGFnZS5BbHdheXMgYWxsb3cgSmF2YVNjcmlwdCBvbiAkMUNvbnRpbnVlIGJsb2NraW5nIEphdmFTY3JpcHRNYW5hZ2UgSmF2YVNjcmlwdCBibG9ja2luZ+KApkZsYXNoIHdhcyBibG9ja2VkIG9uIHRoaXMgcGFnZUZsYXNoIHdhcyBibG9ja2VkIG9uIHRoaXMgcGFnZS5SdW4gRmxhc2ggdGhpcyB0aW1lU291bmQgd2FzIG11dGVkIG9uIHRoaXMgcGFnZS5BbHdheXMgYWxsb3cgc291bmQgb24gJDFDb250aW51ZSBtdXRpbmcgc291bmRJc3N1ZWQgVG9Jc3N1ZWQgQnlDb21tb24gTmFtZSAoQ04pT3JnYW5pemF0aW9uIChPKU9yZ2FuaXphdGlvbmFsIFVuaXQgKE9VKVNlcmlhbCBOdW1iZXJWYWxpZGl0eSBQZXJpb2RJc3N1ZWQgT25FeHBpcmVzIE9uRmluZ2VycHJpbnRzU0hBLTI1NiBGaW5nZXJwcmludFNIQS0xIEZpbmdlcnByaW50Q2VydGlmaWNhdGUgU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lQmFzZTY0LWVuY29kZWQgQVNDSUksIHNpbmdsZSBjZXJ0aWZpY2F0ZUJhc2U2NC1lbmNvZGVkIEFTQ0lJLCBjZXJ0aWZpY2F0ZSBjaGFpbkRFUi1lbmNvZGVkIGJpbmFyeSwgc2luZ2xlIGNlcnRpZmljYXRlUEtDUyAjNywgc2luZ2xlIGNlcnRpZmljYXRlUEtDUyAjNywgY2VydGlmaWNhdGUgY2hhaW5DZXJ0aWZpY2F0ZSBWaWV3ZXI6ICQxJkdlbmVyYWwmRGV0YWlsc1RoaXMgY2VydGlmaWNhdGUgaGFzIGJlZW4gdmVyaWZpZWQgZm9yIHRoZSBmb2xsb3dpbmcgdXNhZ2VzOlNTTCBTZXJ2ZXIgQ2VydGlmaWNhdGVTU0wgU2VydmVyIHdpdGggU3RlcC11cEVtYWlsIFNpZ25lciBDZXJ0aWZpY2F0ZUVtYWlsIEVuY3J5cHRpb24gQ2VydGlmaWNhdGVDb2RlIFNpZ25lclNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eVN0YXR1cyBSZXNwb25kZXIgQ2VydGlmaWNhdGU8Tm90IFBhcnQgT2YgQ2VydGlmaWNhdGU+Q2VydGlmaWNhdGUgSGllcmFyY2h5Q2VydGlmaWNhdGUgRmllbGRzRmllbGQgVmFsdWVDZXJ0aWZpY2F0ZVZlcnNpb24gJDFDZXJ0aWZpY2F0ZSBTaWduYXR1cmUgQWxnb3JpdGhtSXNzdWVyVmFsaWRpdHlOb3QgQmVmb3JlTm90IEFmdGVyU3ViamVjdFN1YmplY3QgUHVibGljIEtleSBJbmZvU3ViamVjdCBQdWJsaWMgS2V5IEFsZ29yaXRobVN1YmplY3QncyBQdWJsaWMgS2V5TW9kdWx1cyAoJDEgYml0cyk6CiAgJDIKCiAgUHVibGljIEV4cG9uZW50ICgkMyBiaXRzKToKICAkNENlcnRpZmljYXRlIFNpZ25hdHVyZSBWYWx1ZUUmeHBvcnTigKZDTlNUT09VZG5RdWFsaWZpZXJDc2VyaWFsTnVtYmVyTERDTUFJTFVJREVidXNpbmVzc0NhdGVnb3J5anVyaXNkaWN0aW9uTG9jYWxpdHlOYW1lanVyaXNkaWN0aW9uU3RhdGVPclByb3ZpbmNlTmFtZWp1cmlzZGljdGlvbkNvdW50cnlOYW1lU1RSRUVUcG9zdGFsQ29kZVBLQ1MgIzEgUlNBIEVuY3J5cHRpb25QS0NTICMxIE1EMiBXaXRoIFJTQSBFbmNyeXB0aW9uUEtDUyAjMSBNRDQgV2l0aCBSU0EgRW5jcnlwdGlvblBLQ1MgIzEgTUQ1IFdpdGggUlNBIEVuY3J5cHRpb25QS0NTICMxIFNIQS0xIFdpdGggUlNBIEVuY3J5cHRpb25QS0NTICMxIFNIQS0yNTYgV2l0aCBSU0EgRW5jcnlwdGlvblBLQ1MgIzEgU0hBLTM4NCBXaXRoIFJTQSBFbmNyeXB0aW9uUEtDUyAjMSBTSEEtNTEyIFdpdGggUlNBIEVuY3J5cHRpb25YOS42MiBFQ0RTQSBTaWduYXR1cmUgd2l0aCBTSEEtMVg5LjYyIEVDRFNBIFNpZ25hdHVyZSB3aXRoIFNIQS0yNTZYOS42MiBFQ0RTQSBTaWduYXR1cmUgd2l0aCBTSEEtMzg0WDkuNjIgRUNEU0EgU2lnbmF0dXJlIHdpdGggU0hBLTUxMkVsbGlwdGljIEN1cnZlIFB1YmxpYyBLZXlTRUNHIGVsbGlwdGljIGN1cnZlIHNlY3AyNTZyMSAoYWthIEFOU0kgWDkuNjIgcHJpbWUyNTZ2MSwgTklTVCBQLTI1NilTRUNHIGVsbGlwdGljIGN1cnZlIHNlY3AzODRyMSAoYWthIE5JU1QgUC0zODQpU0VDRyBlbGxpcHRpYyBjdXJ2ZSBzZWNwNTIxcjEgKGFrYSBOSVNUIFAtNTIxKU5ldHNjYXBlIENlcnRpZmljYXRlIFR5cGVFbWFpbCBDZXJ0aWZpY2F0ZUVtYWlsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5TmV0c2NhcGUgQ2VydGlmaWNhdGUgQmFzZSBVUkxOZXRzY2FwZSBDZXJ0aWZpY2F0ZSBSZXZvY2F0aW9uIFVSTE5ldHNjYXBlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJldm9jYXRpb24gVVJMTmV0c2NhcGUgQ2VydGlmaWNhdGUgUmVuZXdhbCBVUkxOZXRzY2FwZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgVVJMTmV0c2NhcGUgQ2VydGlmaWNhdGUgU1NMIFNlcnZlciBOYW1lTmV0c2NhcGUgQ2VydGlmaWNhdGUgQ29tbWVudE5ldHNjYXBlIExvc3QgUGFzc3dvcmQgVVJMTmV0c2NhcGUgQ2VydGlmaWNhdGUgUmVuZXdhbCBUaW1lQ2VydGlmaWNhdGUgU3ViamVjdCBEaXJlY3RvcnkgQXR0cmlidXRlc0NlcnRpZmljYXRlIFN1YmplY3QgS2V5IElES2V5IElEOiAkMUlzc3VlcjogJDFTZXJpYWwgTnVtYmVyOiAkMUNlcnRpZmljYXRlIEtleSBVc2FnZUNlcnRpZmljYXRlIElzc3VlciBBbHRlcm5hdGl2ZSBOYW1lQ2VydGlmaWNhdGUgQmFzaWMgQ29uc3RyYWludHNDZXJ0aWZpY2F0ZSBOYW1lIENvbnN0cmFpbnRzQ1JMIERpc3RyaWJ1dGlvbiBQb2ludHNDZXJ0aWZpY2F0ZSBQb2xpY2llc0NlcnRpZmljYXRlIFBvbGljeSBNYXBwaW5nc0NlcnRpZmljYXRlIFBvbGljeSBDb25zdHJhaW50c0NlcnRpZmljYXRpb24gQXV0aG9yaXR5IEtleSBJREV4dGVuZGVkIEtleSBVc2FnZUF1dGhvcml0eSBJbmZvcm1hdGlvbiBBY2Nlc3NTaWduaW5nTm9uLXJlcHVkaWF0aW9uS2V5IEVuY2lwaGVybWVudERhdGEgRW5jaXBoZXJtZW50S2V5IEFncmVlbWVudENlcnRpZmljYXRlIFNpZ25lckNSTCBTaWduZXJFbmNpcGhlciBPbmx5SXMgYSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eUlzIG5vdCBhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5TWF4aW11bSBudW1iZXIgb2YgaW50ZXJtZWRpYXRlIENBczogJDF1bmxpbWl0ZWRDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudCBQb2ludGVyVXNlciBOb3RpY2VVbnVzZWRLZXkgQ29tcHJvbWlzZUNBIENvbXByb21pc2VBZmZpbGlhdGlvbiBDaGFuZ2VkU3VwZXJzZWRlZENlc3NhdGlvbiBvZiBPcGVyYXRpb25DZXJ0aWZpY2F0ZSBvbiBIb2xkT0NTUCBSZXNwb25kZXI6ICQxQ0EgSXNzdWVyczogJDEkMTpFbWFpbCBBZGRyZXNzRE5TIE5hbWVYLjQwMCBBZGRyZXNzWC41MDAgTmFtZUVESSBQYXJ0eSBOYW1lVVJJSVAgQWRkcmVzc1JlZ2lzdGVyZWQgT0lETWljcm9zb2Z0IENlcnRpZmljYXRlIFRlbXBsYXRlIE5hbWVNaWNyb3NvZnQgQ0EgVmVyc2lvbk1pY3Jvc29mdCBQcmluY2lwYWwgTmFtZU1pY3Jvc29mdCBEb21haW4gR1VJRFRMUyBXV1cgU2VydmVyIEF1dGhlbnRpY2F0aW9uVExTIFdXVyBDbGllbnQgQXV0aGVudGljYXRpb25Db2RlIFNpZ25pbmdFbWFpbCBQcm90ZWN0aW9uVGltZSBTdGFtcGluZ1NpZ25pbmcgT0NTUCBSZXNwb25zZXNNaWNyb3NvZnQgSW5kaXZpZHVhbCBDb2RlIFNpZ25pbmdNaWNyb3NvZnQgQ29tbWVyY2lhbCBDb2RlIFNpZ25pbmdNaWNyb3NvZnQgVHJ1c3QgTGlzdCBTaWduaW5nTWljcm9zb2Z0IFRpbWUgU3RhbXBpbmdNaWNyb3NvZnQgU2VydmVyIEdhdGVkIENyeXB0b2dyYXBoeU1pY3Jvc29mdCBFbmNyeXB0aW5nIEZpbGUgU3lzdGVtTWljcm9zb2Z0IEZpbGUgUmVjb3ZlcnlNaWNyb3NvZnQgV2luZG93cyBIYXJkd2FyZSBEcml2ZXIgVmVyaWZpY2F0aW9uTWljcm9zb2Z0IFF1YWxpZmllZCBTdWJvcmRpbmF0aW9uTWljcm9zb2Z0IEtleSBSZWNvdmVyeU1pY3Jvc29mdCBEb2N1bWVudCBTaWduaW5nTWljcm9zb2Z0IExpZmV0aW1lIFNpZ25pbmdNaWNyb3NvZnQgU21hcnQgQ2FyZCBMb2dvbk1pY3Jvc29mdCBLZXkgUmVjb3ZlcnkgQWdlbnROZXRzY2FwZSBJbnRlcm5hdGlvbmFsIFN0ZXAtVXBDcml0aWNhbE5vdCBDcml0aWNhbEVycm9yOiBVbmFibGUgdG8gZGVjb2RlIGV4dGVuc2lvbkNlcnRpZmljYXRlIG1hbmFnZXJoYXJkd2FyZS1iYWNrZWQkMSAoZXh0ZW5zaW9uIHByb3ZpZGVkKSIkMSIgaXMgZGVidWdnaW5nIHRoaXMgYnJvd3Nlci5EZXZUb29scyByZXF1ZXN0cyBmdWxsIGFjY2VzcyB0byAkMS4gTWFrZSBzdXJlIHlvdSBkbyBub3QgZXhwb3NlIGFueSBzZW5zaXRpdmUgaW5mb3JtYXRpb24uRGVueU5vcm1hbCBSZWxvYWRIYXJkIFJlbG9hZEVtcHR5IENhY2hlIGFuZCBIYXJkIFJlbG9hZCgkMSlFbmQgcHJvY2Vzc1Byb2Nlc3MgSURHREkgaGFuZGxlc1VTRVIgaGFuZGxlc1Rhc2tOYUNsIGRlYnVnIHBvcnROZXR3b3JrQ1BVU3RhcnQgVGltZUNQVSBUaW1lTWVtb3J5TWVtb3J5IGZvb3RwcmludFByaXZhdGUgbWVtb3J5U2hhcmVkIG1lbW9yeVN3YXBwZWQgbWVtb3J5UHJvZmlsZUlkbGUgd2FrZSB1cHNIYXJkIGZhdWx0c0ZpbGUgZGVzY3JpcHRvcnNQcm9jZXNzIHByaW9yaXR5SW1hZ2UgY2FjaGVTY3JpcHQgY2FjaGVDU1MgY2FjaGVHUFUgbWVtb3J5U1FMaXRlIG1lbW9yeUphdmFTY3JpcHQgbWVtb3J5TWVtb3J5IHN0YXRlS2VlcGFsaXZlIGNvdW50JDFLJDFLICgkMksgbGl2ZSnigJNMb3dOb3JtYWxUaHJvdHRsZWRTdXNwZW5kZWQkMSAoJDIgcGVhaylCcm93c2VyRXh0ZW5zaW9uOiAkMUluY29nbml0byBFeHRlbnNpb246ICQxQXBwOiAkMUluY29nbml0byBBcHA6ICQxVGFiOiAkMUluY29nbml0byBUYWI6ICQxQmFja2dyb3VuZCBBcHA6ICQxQmFja2dyb3VuZCBQYWdlOiAkMVBsdWdpbjogJDFQbHVnaW4gQnJva2VyOiAkMVByZXJlbmRlcjogJDFSZW5kZXJlcjogJDFVbmtub3duIHBsdWdpblV0aWxpdHk6ICQxTmF0aXZlIENsaWVudCBtb2R1bGU6ICQxTmF0aXZlIENsaWVudCBzZWN1cml0eSBtYW5hZ2VyR1BVIFByb2Nlc3NQcmludDogJDFTdWJmcmFtZTogJDFJbmNvZ25pdG8gU3ViZnJhbWU6ICQxU2VydmljZTogJDFSZWNlaXZlcjogJDFTeXN0ZW06ICQxU3ViZnJhbWVzIGZvcjogJDFJbmNvZ25pdG8gc3ViZnJhbWVzIGZvcjogJDFDb21wb25lbnQgUGF0Y2hlckltYWdlIERlY29kZXJWOCBQcm94eSBSZXNvbHZlckNocm9tZSBGaWxlIFV0aWxpdGllc1Byb2ZpbGUgSW1wb3J0ZXJTYWZlIEJyb3dzaW5nIFppcCBGaWxlIEFuYWx5emVyQ2hyb21lIE9TIFN5c3RlbSBJbWFnZSBXcml0ZXJNZWRpYSBGaWxlIENoZWNrZXJaaXAgRmlsZSBJbnN0YWxsZXJQcmludGluZyBzZXJ2aWNlUGF0Y2ggU2VydmljZUluc3RhbGxlZCB0aGVtZSAiJDEiLlRvIHJlLWVuYWJsZSBpdCwgYWNjZXB0IHRoZSBuZXcgcGVybWlzc2lvbnM6JDEgaXMgZGlzYWJsZWRHb29nbGUgaGFzIGZsYWdnZWQgIiQxIiBhcyBtYWxpY2lvdXMgYW5kIGluc3RhbGxhdGlvbiBoYXMgYmVlbiBwcmV2ZW50ZWQuJDEgd2FzIGFkZGVkIHJlbW90ZWx5UmVmcmVzaCByZXF1aXJlZEluIG9yZGVyIHRvIHJ1biB0aGlzIGV4dGVuc2lvbiwgeW91IG5lZWQgdG8gcmVmcmVzaCB0aGUgcGFnZS4gWW91IGNhbiBydW4gdGhpcyBleHRlbnNpb24gYXV0b21hdGljYWxseSBvbiB0aGlzIHNpdGUgYnkgcmlnaHQtY2xpY2tpbmcgb24gdGhlIGV4dGVuc2lvbiBpY29uLk9LLCByZWZyZXNoTmV2ZXIgbWluZFVuaW5zdGFsbCBhcHA/IiQxIiB3aWxsIGJlIHVuaW5zdGFsbGVkLkRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYXBwIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoaXMgZGV2aWNlLkNvbmZpcm0gUmVtb3ZhbENvbmZpcm0gUGVybWlzc2lvbnNBZGQgIiQxIiBmb3IgJDI/QWRkICIkMSI/UmVtb3ZlICIkMSI/IiQxIiB3b3VsZCBsaWtlIHRvIHJlbW92ZSAiJDIiLlRoZSBuZXdlc3QgdmVyc2lvbiBvZiAiJDEiIGhhcyBiZWVuIGRpc2FibGVkIGJlY2F1c2UgaXQgcmVxdWlyZXMgbW9yZSBwZXJtaXNzaW9ucy4iJDEiIGhhcyByZXF1ZXN0ZWQgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy5DdXJyZW50IFBlcm1pc3Npb25zIGZvciAiJDEiRW5hYmxlICIkMSI/UmVwYWlyICIkMSI/QW5vdGhlciBwcm9ncmFtIG9uIHlvdXIgY29tcHV0ZXIgYWRkZWQgYW4gYXBwIHRoYXQgbWF5IGNoYW5nZSB0aGUgd2F5IENocm9tZSB3b3Jrcy4KCgokMUFub3RoZXIgcHJvZ3JhbSBvbiB5b3VyIGNvbXB1dGVyIGFkZGVkIGFuIGV4dGVuc2lvbiB0aGF0IG1heSBjaGFuZ2UgdGhlIHdheSBDaHJvbWUgd29ya3MuCgokMUFub3RoZXIgcHJvZ3JhbSBvbiB5b3VyIGNvbXB1dGVyIGFkZGVkIGEgdGhlbWUgdGhhdCBtYXkgY2hhbmdlIHRoZSB3YXkgQ2hyb21lIHdvcmtzLgoKJDFFbmFibGUgZXh0ZW5zaW9uRW5hYmxlIGFwcEVuYWJsZSB0aGVtZVJlbW92ZSBmcm9tIENocm9tZUNvbmZpcm0gQ2hhbmdlc1RoZSBleHRlbnNpb24gIiQxIiBoYXMgYmVlbiBhZGRlZC5UaGUgZXh0ZW5zaW9uICIkMSIgd2FzIGF1dG9tYXRpY2FsbHkgZGlzYWJsZWQuVGhlIGFwcCAiJDEiIGhhcyBiZWVuIGFkZGVkLlRoZSBhcHAgIiQxIiB3YXMgYXV0b21hdGljYWxseSByZW1vdmVkLk9LJDEgd2FudHMgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgYXBwICIkMiIkMSB3YW50cyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBleHRlbnNpb24gIiQyIkl0IGNhbjpJdCBjYW4gbm93Okl0IGNvdWxkOldhcm5pbmc6IFlvdSd2ZSBlbmFibGVkIHRoZSAtLXNjcmlwdHMtcmVxdWlyZS1hY3Rpb24gZmxhZyBvbiB0aGlzIGNvbXB1dGVyLCB3aGljaCBsaW1pdHMgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGlzIGV4dGVuc2lvbi4gSG93ZXZlciwgb3RoZXIgZGV2aWNlcyBtYXkgbm90IHN1cHBvcnQgdGhpcyBmbGFnIG9yIGhhdmUgaXQgZW5hYmxlZC4gT24gdGhlc2UgZGV2aWNlcywgdGhpcyBleHRlbnNpb24gY2FuIGFsc286SGFzIG5vIHNwZWNpYWwgcGVybWlzc2lvbnMu4oCiICQxezEsIHBsdXJhbCwKICAgICAgICAgID0xIHtSYXRlZCB7MCwgbnVtYmVyLDAuMH0gYnkgb25lIHVzZXIufQogICAgICAgICAgb3RoZXJ7UmF0ZWQgezAsIG51bWJlciwwLjB9IGJ5ICMgdXNlcnMufX1Ob3QgeWV0IHJhdGVkIGJ5IGFueSB1c2Vycy4kMSB1c2Vyc09wZW4gaW4gV2ViIFN0b3Jle05VTV9GSUxFUywgcGx1cmFsLAogICAgICAgICA9MSB7SXQgaGFzIHBlcm1hbmVudCBhY2Nlc3MgdG8gb25lIGZpbGUufQogICAgICAgICBvdGhlciB7SXQgaGFzIHBlcm1hbmVudCBhY2Nlc3MgdG8gIyBmaWxlcy59fVJlYWQgYW5kIGNoYW5nZSBhbGwgeW91ciBkYXRhIG9uIHlvdXIgY29tcHV0ZXIgYW5kIHRoZSB3ZWJzaXRlcyB5b3UgdmlzaXRSZWFkIGFuZCBjaGFuZ2UgYWxsIHlvdXIgZGF0YSBvbiB0aGUgd2Vic2l0ZXMgeW91IHZpc2l0UmVhZCBhbmQgY2hhbmdlIGFsbCB5b3VyIGRhdGEgb24gdGhlIGN1cnJlbnQgd2Vic2l0ZSB3aGVuIGludm9rZWRSZWFkIGFsbCB5b3VyIGRhdGEgb24gdGhlIHdlYnNpdGVzIHlvdSB2aXNpdFVzZSB5b3VyIG1pY3JvcGhvbmVVc2UgeW91ciBjYW1lcmFVc2UgeW91ciBtaWNyb3Bob25lIGFuZCBjYW1lcmFBY2Nlc3MgaW5mb3JtYXRpb24gYWJvdXQgQmx1ZXRvb3RoIGRldmljZXMgcGFpcmVkIHdpdGggeW91ciBzeXN0ZW0gYW5kIGRpc2NvdmVyIG5lYXJieSBCbHVldG9vdGggZGV2aWNlcy5TZW5kIG1lc3NhZ2VzIHRvIGFuZCByZWNlaXZlIG1lc3NhZ2VzIGZyb20gQmx1ZXRvb3RoIGRldmljZXMuQ29udHJvbCBCbHVldG9vdGggYWRhcHRlciBzdGF0ZSBhbmQgcGFpcmluZ0FjY2VzcyB5b3VyIEJsdWV0b290aCBhbmQgU2VyaWFsIGRldmljZXNSZWFkIGFuZCBjaGFuZ2UgeW91ciBib29rbWFya3NSZWFkIGRhdGEgeW91IGNvcHkgYW5kIHBhc3RlUmVhZCBhbmQgbW9kaWZ5IGRhdGEgeW91IGNvcHkgYW5kIHBhc3RlTW9kaWZ5IGRhdGEgeW91IGNvcHkgYW5kIHBhc3RlQWNjZXNzIHRoZSBwYWdlIGRlYnVnZ2VyIGJhY2tlbmRCbG9jayBwYXJ0cyBvZiB3ZWIgcGFnZXNBY2Nlc3MgZG9jdW1lbnQgc2Nhbm5lcnMgYXR0YWNoZWQgdmlhIFVTQiBvciBvbiB0aGUgbG9jYWwgbmV0d29ya1JlYWQgdGhlIGljb25zIG9mIHRoZSB3ZWJzaXRlcyB5b3UgdmlzaXREZXRlY3QgeW91ciBwaHlzaWNhbCBsb2NhdGlvblJlYWQgeW91ciBicm93c2luZyBoaXN0b3J5UmVhZCB5b3VyIGJyb3dzaW5nIGhpc3Rvcnkgb24gYWxsIHlvdXIgc2lnbmVkLWluIGRldmljZXNSZWFkIGFuZCBjaGFuZ2UgeW91ciBicm93c2luZyBoaXN0b3J5UmVhZCBhbmQgY2hhbmdlIHlvdXIgYnJvd3NpbmcgaGlzdG9yeSBvbiBhbGwgeW91ciBzaWduZWQtaW4gZGV2aWNlc0NoYW5nZSB5b3VyIGhvbWUgcGFnZSB0bzogJDFSZWFkIGFuZCBjaGFuZ2UgeW91ciBkYXRhIG9uICQxUmVhZCB5b3VyIGRhdGEgb24gJDFSZWFkIGFuZCBjaGFuZ2UgeW91ciBkYXRhIG9uICQxIGFuZCAkMlJlYWQgeW91ciBkYXRhIG9uICQxIGFuZCAkMlJlYWQgYW5kIGNoYW5nZSB5b3VyIGRhdGEgb24gJDEsICQyLCBhbmQgJDNSZWFkIHlvdXIgZGF0YSBvbiAkMSwgJDIsIGFuZCAkM1JlYWQgYW5kIGNoYW5nZSB5b3VyIGRhdGEgb24gYSBudW1iZXIgb2Ygd2Vic2l0ZXNSZWFkIHlvdXIgZGF0YSBvbiBhIG51bWJlciBvZiB3ZWJzaXRlc2FsbCAkMSBzaXRlc0FsbCAkMSBzaXRlc1JlYWQgYW5kIGNoYW5nZSBhbnl0aGluZyB5b3UgdHlwZU1hbmFnZSB5b3VyIGFwcHMsIGV4dGVuc2lvbnMsIGFuZCB0aGVtZXNEaXNjb3ZlciBkZXZpY2VzIG9uIHlvdXIgbG9jYWwgbmV0d29ya0FjY2VzcyBsaXN0IG9mIG5ldHdvcmsgY29ubmVjdGlvbnNDb25maWd1cmUgbmV0d29yayBjb25uZWN0aW9uc01hbmFnZSBuZXR3b3JrIGNvbm5lY3Rpb25zQ2hhbmdlIHlvdXIgc2VhcmNoIHNldHRpbmdzIHRvOiAkMUFjY2VzcyB5b3VyIHNlcmlhbCBkZXZpY2VzRXhjaGFuZ2UgZGF0YSB3aXRoIGFueSBkZXZpY2Ugb24gdGhlIGxvY2FsIG5ldHdvcmsgb3IgaW50ZXJuZXRFeGNoYW5nZSBkYXRhIHdpdGggYW55IGRldmljZSBpbiB0aGUgZG9tYWluICQxRXhjaGFuZ2UgZGF0YSB3aXRoIGFueSBkZXZpY2UgaW4gdGhlIGRvbWFpbnM6ICQxRXhjaGFuZ2UgZGF0YSB3aXRoIHRoZSBkZXZpY2UgbmFtZWQgJDFFeGNoYW5nZSBkYXRhIHdpdGggdGhlIGRldmljZXMgbmFtZWQ6ICQxQ2hhbmdlIHlvdXIgc3RhcnQgcGFnZSB0bzogJDFJZGVudGlmeSBhbmQgZWplY3Qgc3RvcmFnZSBkZXZpY2VzUmVhZCBhIGxpc3Qgb2YgeW91ciBtb3N0IGZyZXF1ZW50bHkgdmlzaXRlZCB3ZWJzaXRlc1JlYWQgYWxsIHRleHQgc3Bva2VuIHVzaW5nIHN5bnRoZXNpemVkIHNwZWVjaEFjY2VzcyB5b3VyIFVuaXZlcnNhbCAybmQgRmFjdG9yIGRldmljZXNEaXNwbGF5IG5vdGlmaWNhdGlvbnNBY2Nlc3MgYW55ICQxIHZpYSBVU0JBY2Nlc3MgYW55IG9mIHRoZXNlIFVTQiBkZXZpY2VzdW5rbm93biBkZXZpY2VzIGZyb20gJDFkZXZpY2VzIGZyb20gYW4gdW5rbm93biB2ZW5kb3JBY2Nlc3MgVVNCIGRldmljZXMgZnJvbSAkMUFjY2VzcyBVU0IgZGV2aWNlcyBmcm9tIGFuIHVua25vd24gdmVuZG9yQWNjZXNzIHlvdXIgbmV0d29yayB0cmFmZmljQ29tbXVuaWNhdGUgd2l0aCBjb29wZXJhdGluZyB3ZWJzaXRlc0NoYW5nZSB5b3VyIHNldHRpbmdzIHRoYXQgY29udHJvbCB3ZWJzaXRlcycgYWNjZXNzIHRvIGZlYXR1cmVzIHN1Y2ggYXMgY29va2llcywgSmF2YVNjcmlwdCwgcGx1Z2lucywgZ2VvbG9jYXRpb24sIG1pY3JvcGhvbmUsIGNhbWVyYSBldGMuQ2hhbmdlIHlvdXIgcHJpdmFjeS1yZWxhdGVkIHNldHRpbmdzUmVhZCB0aGUgbGlzdCBvZiB5b3VyIHNpZ25lZC1pbiBkZXZpY2VzTWFuYWdlIHlvdXIgZG93bmxvYWRzT3BlbiBkb3dubG9hZGVkIGZpbGVzS25vdyB5b3VyIGVtYWlsIGFkZHJlc3NDaGFuZ2UgeW91ciB3YWxscGFwZXJSZWFkIGZvbGRlcnMgdGhhdCB5b3Ugb3BlbiBpbiB0aGUgYXBwbGljYXRpb25Xcml0ZSB0byBmaWxlcyBhbmQgZm9sZGVycyB0aGF0IHlvdSBvcGVuIGluIHRoZSBhcHBsaWNhdGlvbkFjY2VzcyBwaG90b3MsIG11c2ljLCBhbmQgb3RoZXIgbWVkaWEgZnJvbSB5b3VyIGNvbXB1dGVyUmVhZCBhbmQgY2hhbmdlIHBob3RvcywgbXVzaWMsIGFuZCBvdGhlciBtZWRpYSBmcm9tIHlvdXIgY29tcHV0ZXJSZWFkIGFuZCBkZWxldGUgcGhvdG9zLCBtdXNpYywgYW5kIG90aGVyIG1lZGlhIGZyb20geW91ciBjb21wdXRlclJlYWQsIGNoYW5nZSBhbmQgZGVsZXRlIHBob3RvcywgbXVzaWMsIGFuZCBvdGhlciBtZWRpYSBmcm9tIHlvdXIgY29tcHV0ZXJTdG9yZSBkYXRhIGluIHlvdXIgR29vZ2xlIERyaXZlIGFjY291bnRSZWFkIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgY29tcHV0ZXJDb21tdW5pY2F0ZSB3aXRoIGNvb3BlcmF0aW5nIG5hdGl2ZSBhcHBsaWNhdGlvbnNMb2NrIGFuZCB1bmxvY2sgdGhlIHNjcmVlbkNoYW5nZSB0aGUgYm9va21hcmtzIHVzZXIgaW50ZXJmYWNlTW9uaXRvciB0aGUgYmVoYXZpb3Igb2Ygb3RoZXIgZXh0ZW5zaW9ucywgaW5jbHVkaW5nIHZpc2l0ZWQgVVJMc0NhcHR1cmUgY29udGVudCBvZiB5b3VyIHNjcmVlbkNoYW5nZSB5b3VyIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3NSZWFkIHlvdXIgYWNjZXNzaWJpbGl0eSBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSB5b3VyIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3NNb25pdG9yIHdoZW4geW91IHRha2UgYWN0aW9ucyBpbiBDaHJvbWVVc2UgeW91ciBjbGllbnQgY2VydGlmaWNhdGVzUHJvdmlkZSBjZXJ0aWZpY2F0ZXMgZm9yIGF1dGhlbnRpY2F0aW9uUmVhZCBhbmQgY2hhbmdlIHVzZXIgYW5kIGRldmljZSBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSBhdXRvZmlsbCBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSBzYXZlZCBwYXNzd29yZCBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSB3aGl0ZWxpc3RlZCB1c2Vyc1NlbmQgYXVkaW8gYW5kIHZpZGVvIHRvIGRpc3BsYXlzIG9uIHRoZSBsb2NhbCBuZXR3b3JrUmVwbGFjZSB0aGUgcGFnZSB5b3Ugc2VlIHdoZW4gb3BlbmluZyBhIG5ldyB0YWJDYW4ndCBmaW5kIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgdG8gcGFjay5JbnB1dCBkaXJlY3RvcnkgbXVzdCBleGlzdC5UaGlzIGNhbiBvbmx5IGJlIGFkZGVkIGZyb20gdGhlICQxLklucHV0IHZhbHVlIGZvciBwcml2YXRlIGtleSBtdXN0IGJlIGEgdmFsaWQgcGF0aC5BIHByaXZhdGUga2V5IGZvciBzcGVjaWZpZWQgZXh0ZW5zaW9uIGFscmVhZHkgZXhpc3RzLiBSZXVzZSB0aGF0IGtleSBvciBkZWxldGUgaXQgZmlyc3QuSW5wdXQgdmFsdWUgZm9yIHByaXZhdGUga2V5IG11c3QgZXhpc3QuUGFjayBFeHRlbnNpb24gV2FybmluZ1BhY2sgRXh0ZW5zaW9uIEVycm9yVGhlcmUgaXMgYWxyZWFkeSBhIENSWCBmaWxlIHByZXNlbnQgd2l0aCB0aGlzIG5hbWUuRmFpbGVkIHRvIHJlYWQgcHJpdmF0ZSBrZXkuSW52YWxpZCBwcml2YXRlIGtleS5ZaWtlcyEgRmFpbGVkIHRvIGdlbmVyYXRlIHJhbmRvbSBSU0EgcHJpdmF0ZSBrZXkuRmFpbGVkIHRvIGV4cG9ydCBwcml2YXRlIGtleS5GYWlsZWQgdG8gb3V0cHV0IHByaXZhdGUga2V5LkZhaWxlZCB0byBjcmVhdGUgdGVtcG9yYXJ5IHppcCBmaWxlIGR1cmluZyBwYWNrYWdpbmcuRXJyb3Igd2hpbGUgc2lnbmluZyBleHRlbnNpb24uRmFpbGVkIHRvIHJlcGxhY2UgY3J4IGZpbGUuIENoZWNrIHRvIHNlZSBpZiB0aGUgZmlsZSBpcyBpbiB1c2UuRmFpbGVkIHRvIGV4cG9ydCBwdWJsaWMga2V5LkF0dGVtcHRlZCB0byBkb3duZ3JhZGUgZXh0ZW5zaW9uLkF0dGVtcHRlZCB0byBkb3duZ3JhZGUgYXBwLkNvdWxkIG5vdCBtb3ZlIGV4dGVuc2lvbiBkaXJlY3RvcnkgaW50byBwcm9maWxlLkluc3RhbGxhdGlvbiBpcyBub3QgZW5hYmxlZC5BcHBzIG11c3QgYmUgc2VydmVkIHdpdGggY29udGVudC10eXBlICIkMSIuQXBwcyBtdXN0IGJlIHNlcnZlZCBmcm9tIHRoZSBob3N0IHRoZXkgYWZmZWN0LkV4cGVjdGVkIElEICIkMSIsIGJ1dCBJRCB3YXMgIiQyIi5BcHBzLCBleHRlbnNpb25zLCBhbmQgdXNlciBzY3JpcHRzIGNhbm5vdCBiZSBhZGRlZCBmcm9tIHRoaXMgd2Vic2l0ZS5FeHBlY3RlZCB2ZXJzaW9uICIkMSIsIGJ1dCB2ZXJzaW9uIHdhcyAiJDIiLkV4dGVuc2lvbiByZXF1aXJlcyAiJDEiIHdpdGggYSBtaW5pbXVtIHZlcnNpb24gIiQyIiwgYnV0IG9ubHkgdmVyc2lvbiAiJDMiIGlzIGluc3RhbGxlZC5VbmFibGUgdG8gaW1wb3J0IGV4dGVuc2lvbiAiJDEiIGJlY2F1c2UgaXQgaXMgbm90IGEgc2hhcmVkIG1vZHVsZS5VbmFibGUgdG8gaW5zdGFsbCAiJDEiIGJlY2F1c2UgaXQgaXMgbm90IGFsbG93ZWQgYnkgIiQyIkFwcCB3aXRoICdraW9za19vbmx5JyBtYW5pZmVzdCBhdHRyaWJ1dGUgbXVzdCBiZSBpbnN0YWxsZWQgaW4gQ2hyb21lIE9TIGtpb3NrIG1vZGUuQ291bGQgbm90IGFkZCBhcHBsaWNhdGlvbiAiJDEiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggIiQyIi5Db3VsZCBub3QgbG9hZCAnJDEnIGZvciB0aGVtZS5Db3VsZCBub3QgbG9hZCBqYXZhc2NyaXB0ICckMScgZm9yIGNvbnRlbnQgc2NyaXB0LkNvdWxkIG5vdCBsb2FkIGNzcyAnJDEnIGZvciBjb250ZW50IHNjcmlwdC5Db3VsZCBub3QgbG9hZCBmaWxlICckMScgZm9yIGNvbnRlbnQgc2NyaXB0LiBJdCBpc24ndCBVVEYtOCBlbmNvZGVkLkNvdWxkIG5vdCBsb2FkIGljb24gJyQxJyBmb3IgcGFnZSBhY3Rpb24uQ291bGQgbm90IGxvYWQgaWNvbiAnJDEnIGZvciBicm93c2VyIGFjdGlvbi5UaGlzIGljb24gd2lsbCBiZSB2aXNpYmxlIHdoZW4gdGhlIGV4dGVuc2lvbiBjYW4gYWN0IG9uIHRoZSBjdXJyZW50IHBhZ2UuVGhpcyBpY29uIHdpbGwgYmUgdmlzaWJsZSB3aGVuIHRoZSBleHRlbnNpb24gY2FuIGFjdCBvbiB0aGUgY3VycmVudCBwYWdlLiBVc2UgdGhpcyBleHRlbnNpb24gYnkgY2xpY2tpbmcgb24gdGhlIGljb24gb3IgYnkgcHJlc3NpbmcgJDEuVXNlIHRoaXMgZXh0ZW5zaW9uIGJ5IGNsaWNraW5nIG9uIHRoaXMgaWNvbi5Vc2UgdGhpcyBleHRlbnNpb24gYnkgY2xpY2tpbmcgb24gdGhpcyBpY29uIG9yIGJ5IHByZXNzaW5nICQxLlRvIHVzZSB0aGlzIGV4dGVuc2lvbiwgdHlwZSAiJDEiLCB0aGVuIFRBQiwgdGhlbiB5b3VyIGNvbW1hbmQgb3Igc2VhcmNoLk1hbmFnZSB5b3VyIGV4dGVuc2lvbnMgYnkgY2xpY2tpbmcgRXh0ZW5zaW9ucyBpbiB0aGUgVG9vbHMgbWVudS5NYW5hZ2Ugc2hvcnRjdXRzVG8gZ2V0IHlvdXIgZXh0ZW5zaW9ucyBvbiBhbGwgeW91ciBjb21wdXRlcnMsICQxLiB0byBnZXQgdGhpcyBleHRlbnNpb24sIHlvdXIgaGlzdG9yeSwgYW5kIG90aGVyIENocm9tZSBzZXR0aW5ncyBvbiBhbGwgeW91ciBkZXZpY2VzLkNvbmZpcm0gQWNjZXNzVGhlIGZvbGRlciB5b3Ugc2VsZWN0ZWQgY29udGFpbnMgc2Vuc2l0aXZlIGZpbGVzLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZ3JhbnQgIiQxIiBwZXJtYW5lbnQgcmVhZCBhY2Nlc3MgdG8gdGhpcyBmb2xkZXI/VGhlIGZvbGRlciB5b3Ugc2VsZWN0ZWQgY29udGFpbnMgc2Vuc2l0aXZlIGZpbGVzLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZ3JhbnQgIiQxIiBwZXJtYW5lbnQgd3JpdGUgYWNjZXNzIHRvIHRoaXMgZm9sZGVyP0xvYWQgdW5wYWNrZWQgZXh0ZW5zaW9u4oCmUGFjayBleHRlbnNpb27igKZCb2/igKYgWW91IGhhdmUgbm8gZXh0ZW5zaW9ucyA6LShXYW50IHRvIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+YnJvd3NlIHRoZSBDaHJvbWUgV2ViIFN0b3JlPC9hPiBpbnN0ZWFkP0Ryb3AgdG8gaW5zdGFsbChDcmFzaGVkKShVbnBhY2tlZCkoSW5jb2duaXRvKShJbmFjdGl2ZSkoaWZyYW1lKWJhY2tncm91bmQgcGFnZUlEOkxvYWRlZCBmcm9tOkluc3BlY3Qgdmlld3M6VGhlcmUgd2VyZSB3YXJuaW5ncyB3aGVuIHRyeWluZyB0byBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uOkVycm9yIExvYWRpbmcgRXh0ZW5zaW9uRmFpbGVkIHRvIGxvYWQgZXh0ZW5zaW9uIGZyb206SSBnaXZlIHVwT3RoZXIgZXh0ZW5zaW9ucyB0aGF0IGZhaWxlZCB0byBsb2FkOkF3ZXNvbWUsIG5vIGVycm9ycyFOb3RoaW5nIHRvIHNlZSBoZXJlLCBtb3ZlIGFsb25nLkNvbnRleHQ6U29ycnksIHdlIGNhbid0IHNob3cgdGhlIGNvZGUgZm9yIHRoaXMgZXJyb3IuRW5hYmxlZENvbGxlY3QgZXJyb3JzQWxsb3cgb24gYWxsIHdlYnNpdGVzQWxsb3cgYWNjZXNzIHRvIGZpbGUgVVJMc1JlbG9hZFJlcGFpckxhdW5jaFJlbG9hZCAoQ3RybCtSKU9wdGlvbnNMb2dXYXJuaW5nUGFnZSBhY2Nlc3NSdW4gb24gY2xpY2tBbHdheXMgcnVuIG9uICQxQWx3YXlzIHJ1biBvbiBhbGwgc2l0ZXNJbnN0YWxsZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9ySGlkZSBidXR0b25LZWVwIGluIHRvb2xiYXJTaG93IGluIHRvb2xiYXJNYW5hZ2UgZXh0ZW5zaW9uc0luc3BlY3QgcG9wdXAoVGhpcyBleHRlbnNpb24gaXMgbWFuYWdlZCBhbmQgY2Fubm90IGJlIHJlbW92ZWQgb3IgZGlzYWJsZWQuKShUaGlzIGV4dGVuc2lvbiBpcyBtYW5hZ2VkIGFuZCBjYW5ub3QgYmUgcmVtb3ZlZC4pQXBwcyBhbmQgZXh0ZW5zaW9ucyBjYW4gb25seSBiZSBtb2RpZmllZCBieSB0aGUgbWFuYWdlciAoJDEpLkluc3RhbGxlZCBieSB5b3VyIHBhcmVudC5JbnN0YWxsZWQgYnkgeW91ciBjdXN0b2RpYW4uR2V0IG1vcmUgZXh0ZW5zaW9uc1NlbGVjdCB0aGUgZXh0ZW5zaW9uIGRpcmVjdG9yeS5LZXlib2FyZCBTaG9ydGN1dHMgZm9yIEV4dGVuc2lvbnMgYW5kIEFwcHNObyBleHRlbnNpb25zIGhhdmUga2V5Ym9hcmQgc2hvcnRjdXRzIGFzc2lnbmVkLkRlbGV0ZSBzaG9ydGN1dEFjdGl2YXRlIHRoZSBleHRlbnNpb25JbiBDaHJvbWVQYWNrIEV4dGVuc2lvblNlbGVjdCB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGV4dGVuc2lvbiB0byBwYWNrLiBUbyB1cGRhdGUgYW4gZXh0ZW5zaW9uLCBhbHNvIHNlbGVjdCB0aGUgcHJpdmF0ZSBrZXkgZmlsZSB0byByZXVzZS5FeHRlbnNpb24gcm9vdCBkaXJlY3Rvcnk6UHJpdmF0ZSBrZXkgZmlsZSAob3B0aW9uYWwpOkJyb3dzZeKAplNlbGVjdCBwcml2YXRlIGtleSBmaWxlLlByaXZhdGUga2V5RXh0ZW5zaW9uIHJvb3QgZGlyZWN0b3J5IGlzIHJlcXVpcmVkLkV4dGVuc2lvbiByb290IGRpcmVjdG9yeSBpcyBpbnZhbGlkLlByaXZhdGUga2V5IGZpbGUgaXMgaW52YWxpZC5DcmVhdGVkIHRoZSBmb2xsb3dpbmcgZmlsZXM6CgpFeHRlbnNpb246ICQxCktleSBGaWxlOiAkMgoKS2VlcCB5b3VyIGtleSBmaWxlIGluIGEgc2FmZSBwbGFjZS4gWW91IHdpbGwgbmVlZCBpdCB0byBjcmVhdGUgbmV3IHZlcnNpb25zIG9mIHlvdXIgZXh0ZW5zaW9uLkNyZWF0ZWQgdGhlIGV4dGVuc2lvbjoKCiQxQWRkQWRkIGV4dGVuc2lvbkFkZCBhcHBBZGQgdGhlbWVSZXBvcnQgYWJ1c2VSZXBvcnQgYWJ1c2UgZnJvbSAiJDEiVW5pbnN0YWxsIiQxIiB3b3VsZCBsaWtlIHRvIHJlbW92ZSB0aGlzIGV4dGVuc2lvbi5SZS1lbmFibGVBY2NlcHQgcGVybWlzc2lvbnNSZXZva2UgZmlsZSBhY2Nlc3NSZXZva2UgZGV2aWNlIGFjY2Vzc1Jldm9rZSBmaWxlIGFuZCBkZXZpY2UgYWNjZXNzUmVwYWlyIGV4dGVuc2lvblJlcGFpciBhcHBXZWIgU3RvcmVTaG93IERldGFpbHNIaWRlIERldGFpbHNBY2Nlc3MgZGVuaWVkLkV4dGVuc2lvbiBlcnJvcldhcm5pbmc6TmV3IGV4dGVuc2lvbiBhZGRlZCAoJDEpTmV3IGFwcCBhZGRlZCAoJDEpTmV3IHRoZW1lIGFkZGVkICgkMSkiJDEiIGFkZGVkQW5vdGhlciBwcm9ncmFtIG9uIHlvdXIgY29tcHV0ZXIgYWRkZWQgYW4gYXBwIHRoYXQgbWF5IGNoYW5nZSB0aGUgd2F5IENocm9tZSB3b3Jrcy5Bbm90aGVyIHByb2dyYW0gb24geW91ciBjb21wdXRlciBhZGRlZCBhbiBleHRlbnNpb24gdGhhdCBtYXkgY2hhbmdlIHRoZSB3YXkgQ2hyb21lIHdvcmtzLkFub3RoZXIgcHJvZ3JhbSBvbiB5b3VyIGNvbXB1dGVyIGFkZGVkIGEgdGhlbWUgdGhhdCBtYXkgY2hhbmdlIHRoZSB3YXkgQ2hyb21lIHdvcmtzLlVuc3VwcG9ydGVkIGV4dGVuc2lvbnMgZGlzYWJsZWRhbmQgJDEgbW9yZU9LLCBnb3QgaXRUaGlzIGV4dGVuc2lvbiBpcyBub3QgbGlzdGVkIGluIHRoZSAkMSBhbmQgbWF5IGhhdmUgYmVlbiBhZGRlZCB3aXRob3V0IHlvdXIga25vd2xlZGdlLkRpc2FibGUgZGV2ZWxvcGVyIG1vZGUgZXh0ZW5zaW9uc0V4dGVuc2lvbnMgcnVubmluZyBpbiBkZXZlbG9wZXIgbW9kZSBjYW4gaGFybSB5b3VyIGNvbXB1dGVyLiBJZiB5b3UncmUgbm90IGEgZGV2ZWxvcGVyLCB5b3Ugc2hvdWxkIGRpc2FibGUgdGhlc2UgZXh0ZW5zaW9ucyBydW5uaW5nIGluIGRldmVsb3BlciBtb2RlIHRvIHN0YXkgc2FmZS5UaGlzIGV4dGVuc2lvbiBtYXkgaGF2ZSBiZWVuIGNvcnJ1cHRlZC5JcyB0aGlzIHRoZSBob21lIHBhZ2UgeW91IHdlcmUgZXhwZWN0aW5nP0lzIHRoaXMgdGhlIHN0YXJ0dXAgcGFnZSB5b3Ugd2VyZSBleHBlY3Rpbmc/SXMgdGhpcyB0aGUgc2VhcmNoIHBhZ2UgeW91IHdlcmUgZXhwZWN0aW5nP0lzIHRoaXMgdGhlIG5ldyB0YWIgcGFnZSB5b3Ugd2VyZSBleHBlY3Rpbmc/WW91ciBJbnRlcm5ldCBjb25uZWN0aW9uIGlzIGJlaW5nIGNvbnRyb2xsZWRUaGlzIGV4dGVuc2lvbiBoYXMgY2hhbmdlZCB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3Ugc2VhcmNoIGZyb20gdGhlIE9tbmlib3guVGhlIGV4dGVuc2lvbiAiJDEiIGhhcyBjaGFuZ2VkIHdoYXQgcGFnZSBpcyBzaG93biB3aGVuIHlvdSBzZWFyY2ggZnJvbSB0aGUgT21uaWJveC5UaGlzIGV4dGVuc2lvbiBoYXMgY2hhbmdlZCB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uLlRoZSBleHRlbnNpb24gIiQxIiBoYXMgY2hhbmdlZCB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uLiBJdCBhbHNvIGNvbnRyb2xzIHdoYXQgcGFnZSBpcyBzaG93biB3aGVuIHlvdSBzZWFyY2ggZnJvbSB0aGUgT21uaWJveC4gSXQgYWxzbyBjb250cm9scyB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uLiAgSXQgYWxzbyBjb250cm9scyB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uIG9yIHNlYXJjaCBmcm9tIHRoZSBPbW5pYm94LiBBbiBleHRlbnNpb24gaGFzIGNoYW5nZWQgd2hhdCBwYWdlIGlzIHNob3duIHdoZW4geW91IG9wZW4gYSBuZXcgdGFiLlRoZSBleHRlbnNpb24gIiQxIiBoYXMgdGFrZW4gY29udHJvbCBvZiB5b3VyIHByb3h5IHNldHRpbmdzLCB3aGljaCBtZWFucyBpdCBjYW4gY2hhbmdlLCBicmVhaywgb3IgZWF2ZXNkcm9wIG9uIGFueXRoaW5nIHlvdSBkbyBvbmxpbmUuIElmIHlvdSBhcmVuJ3Qgc3VyZSB3aHkgdGhpcyBjaGFuZ2UgaGFwcGVuZWQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IGl0LlRoaXMgZXh0ZW5zaW9uIGhhcyB0YWtlbiBjb250cm9sIG9mIHlvdXIgcHJveHkgc2V0dGluZ3MsIHdoaWNoIG1lYW5zIGl0IGNhbiBjaGFuZ2UsIGJyZWFrLCBvciBlYXZlc2Ryb3Agb24gYW55dGhpbmcgeW91IGRvIG9ubGluZS4gSWYgeW91IGFyZW4ndCBzdXJlIHdoeSB0aGlzIGNoYW5nZSBoYXBwZW5lZCwgeW91IHByb2JhYmx5IGRvbid0IHdhbnQgaXQuIElmIHlvdSBkaWRuJ3Qgd2FudCB0aGVzZSBjaGFuZ2VzLCB5b3UgY2FuIHJlc3RvcmUgeW91ciBwcmV2aW91cyBzZXR0aW5ncy5SZXN0b3JlIHNldHRpbmdzS2VlcCBjaGFuZ2VzJDEgYnkgJDJDb21wb25lbnRzTm8gY29tcG9uZW50cyBpbnN0YWxsZWQuTm8gY29tcG9uZW50cyBhcmUgaW5zdGFsbGVkQ2hlY2sgZm9yIHVwZGF0ZVN0YXR1c0NoZWNraW5nIGZvciBzdGF0dXPigKZOZXdDaGVja2luZ0Rvd25sb2FkaW5nIGRpZmZEb3dubG9hZGluZ0Rvd25sb2FkZWRVcGRhdGluZyBkaWZmVXBkYXRpbmdVcGRhdGVkVXAtdG8tZGF0ZU5vIHVwZGF0ZVVwZGF0ZXIgc3RhcnRlZFVwZGF0ZXIgc2xlZXBpbmdVcGRhdGUgZm91bmRVcGRhdGUgcmVhZHlDb21wb25lbnQgdXBkYXRlZENvbXBvbmVudCBub3QgdXBkYXRlZENvbXBvbmVudCBkb3dubG9hZGluZyhEaXNhYmxlZClDaG9vc2UgeW91ciBhY2NvdW50IHNhdmVkIHdpdGggJDEgdG8gc2lnbiBpblNpZ24gaW4gd2l0aCB5b3VyIGFjY291bnQgc2F2ZWQgd2l0aCAkMVNpZ24gaW5QYXNzd29yZCBzYXZlZC4gVG8gZ2V0IHlvdXIgcGFzc3dvcmRzIG9uIGFsbCB5b3VyIGRldmljZXMsIHNpZ24gaW4gdG8gQ2hyb21lLkRvIHlvdSB3YW50ICQxIHRvIHNhdmUgeW91ciBwYXNzd29yZCBmb3IgdGhpcyBzaXRlP0RvIHlvdSB3YW50ICQxIHRvIHNhdmUgeW91ciBhY2NvdW50IGZvciB0aGlzIHNpdGU/RG8geW91IHdhbnQgJDEgdG8gdXBkYXRlIHlvdXIgcGFzc3dvcmQgZm9yIHRoaXMgc2l0ZT9PdGhlcmVtbG9hZGluZ1FBVGVzdGluZ1NhdmVkIGRhdGEuRmFzdGVyIHBhZ2UgbG9hZGVkLlNob3cgb3JpZ2luYWxVcGRhdGVkICQxbWluIGFnb1VwZGF0ZWQgMWhyIGFnb1VwZGF0ZWQgJDFocnMgYWdvVXBkYXRlZCBqdXN0IG5vd1dlYlJUQyBsb2dzV2ViUlRDIGxvZ3MgKCQxKVdlYlJUQyBsb2cgY2FwdHVyZWQgJDFMb2NhbCBmaWxlOk5vIGxvY2FsIGxvZyBmaWxlLlVwbG9hZGVkICQxUmVwb3J0IElEICQxRmlsZSBidWdMb2cgbm90IHVwbG9hZGVkLllvdSBoYXZlIG5vIHJlY2VudGx5IGNhcHR1cmVkIFdlYlJUQyBsb2dzLlNldCB3aGljaCBzZWFyY2ggZW5naW5lIGlzIHVzZWQgd2hlbiBzZWFyY2hpbmcgZnJvbSB0aGUKICAgICAgICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDEiPm9tbmlib3g8L2E+LlVwZGF0ZSBwbHVnaW5SaWdodC1jbGljayB0byBydW4gJDEkMSBpcyBibG9ja2VkIGJ5IGVudGVycHJpc2UgcG9saWN5JDEgaXMgYmxvY2tlZCQxIGlzIG91dCBvZiBkYXRlJDEgbmVlZHMgeW91ciBwZXJtaXNzaW9uIHRvIHJ1bkRvd25sb2FkaW5nICQx4oCmVGhlcmUgd2FzIGFuIGVycm9yICgkMSkgd2hpbGUgZG93bmxvYWRpbmcgdGhlIHBsdWdpbiQxIGRvd25sb2FkIGZhaWxlZFdoZW4gJDEgZmluaXNoZXMgdXBkYXRpbmcsIHJlbG9hZCB0aGUgcGFnZSB0byBhY3RpdmF0ZSBpdCQxIGRpc2FibGVkLkNsaWNrIHRvIGVuYWJsZSAkMVJlc3RvcmUgcGFnZXM/dXNhZ2Ugc3RhdGlzdGljcyQxIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGJ1aWxkLllvdSBhcmUgdXNpbmcgYW4gdW5zdXBwb3J0ZWQgY29tbWFuZC1saW5lIGZsYWc6ICQxLiBTdGFiaWxpdHkgYW5kIHNlY3VyaXR5IHdpbGwgc3VmZmVyLiQxIG9uICQyIHdhbnRzIHRvIGFjY2VzcyB5b3VyIGNvbXB1dGVyLlVuc2FuZGJveGVkIHBsdWdpbiBibG9ja2VkVW5zYW5kYm94ZWQgcGx1Z2luIGFsbG93ZWRBbiB1bnNhbmRib3hlZCBwbHVnaW4gd2FzIHByZXZlbnRlZCBmcm9tIHJ1bm5pbmcgb24gdGhpcyBwYWdlLkFuIHVuc2FuZGJveGVkIHBsdWdpbiB3YXMgYWxsb3dlZCB0byBydW4gb24gdGhpcyBwYWdlLkFsd2F5cyBhbGxvdyB1bnNhbmRib3hlZCBwbHVnaW5zIG9uICQxQ29udGludWUgYmxvY2tpbmcgdW5zYW5kYm94ZWQgcGx1Z2luc0NvbnRpbnVlIGFsbG93aW5nIHVuc2FuZGJveGVkIHBsdWdpbnNBbHdheXMgYmxvY2sgdW5zYW5kYm94ZWQgcGx1Z2lucyBvbiAkMU1hbmFnZSB1bnNhbmRib3hlZCBwbHVnaW4gYmxvY2tpbmfigKZJbnNlY3VyZSBjb250ZW50IGJsb2NrZWRUaGlzIHBhZ2UgaXMgdHJ5aW5nIHRvIGxvYWQgc2NyaXB0cyBmcm9tIHVuYXV0aGVudGljYXRlZCBzb3VyY2VzLkxvYWQgdW5zYWZlIHNjcmlwdHNBZGQgdGhpcyBzaXRlIHRvIHlvdXIgc2hlbGYgdG8gdXNlIGl0IGFueSB0aW1lLkFib3V0IFN5c3RlbVN5c3RlbSBkaWFnbm9zdGljIGRhdGFEZXRhaWxzOiAkMUV4cGFuZCBhbGzigKZDb2xsYXBzZSBhbGzigKZFeHBhbmTigKZDb2xsYXBzZeKAplVuYWJsZSB0byBwYXJzZSBmaWxlOiAkMUFib3V0IEZsYXNoVGhpcyBwYWdlIHVzZXMgYSBOYXRpdmUgQ2xpZW50IGFwcCB0aGF0IGRvZXNuJ3Qgd29yayBvbiB5b3VyIGNvbXB1dGVyLlBhJnN0ZSBhbmQgZ29QYSZzdGUgYW5kIHNlYXJjaFByZXNzICQxIHRvIHNlYXJjaCAkMlByZXNzICQxIHRvIHNlbmQgY29tbWFuZHMgdG8gJDJTZWFyY2ggJDFTZW5kIGNvbW1hbmRzIHRvICQxU2VhcmNoICQxOlNlYXJjaCBHb29nbGUgb3IgdHlwZSBVUkxDbGljayB0byB2aWV3IHRvZGF54oCZcyBkb29kbGUkMSwgYW5zd2VyLCAkMkNsZWFyIGlucHV0U2VhcmNoIG9yIHR5cGUgVVJMQ2xpY2sgdG8gZ28gYmFjaywgaG9sZCB0byBzZWUgaGlzdG9yeVByZXNzIHRvIGdvIGJhY2ssIHVzZSBjb250ZXh0IG1lbnUgdG8gc2VlIGhpc3RvcnlDbGljayB0byBnbyBmb3J3YXJkLCBob2xkIHRvIHNlZSBoaXN0b3J5UHJlc3MgdG8gZ28gZm9yd2FyZCwgY29udGV4dCBtZW51IHRvIHNlZSBoaXN0b3J5T3BlbiB0aGUgaG9tZSBwYWdlUmVsb2FkIHRoaXMgcGFnZVJlbG9hZCB0aGlzIHBhZ2UsIGhvbGQgdG8gc2VlIG1vcmUgb3B0aW9uc1N0b3AgbG9hZGluZyB0aGlzIHBhZ2VWaWV3IHNpdGUgaW5mb3JtYXRpb25OZXcgdGFiU2VhcmNoIGJ5IHZvaWNlU2F2ZSBjcmVkaXQgY2FyZFRyYW5zbGF0ZSB0aGlzIHBhZ2Vab29tOiAkMVRoaXMgcGFnZSB3YXMgem9vbWVkIGJ5IHRoZSAiJDEiIGV4dGVuc2lvbiQxIChJbmNvZ25pdG8pJDEgKFVwZGF0ZSBpcyBhdmFpbGFibGUpRnVsbCBzY3JlZW5Ib21lRmluZE1lbnUgY29udGFpbmluZyBoaWRkZW4gYm9va21hcmtzQm9va21hcmtzIG1lbnVTZXBhcmF0b3JOZXcgVGFiTWluaW1pemVNYXhpbWl6ZVJlc3RvcmVDbG9zZSAkMVJlc2V0IHRvIGRlZmF1bHQgem9vbSBsZXZlbFJlc3BvbmQgdG8gQWNjZXNzaWJpbGl0eSBFdmVudHNTZWUgdGV4dCBhbmQgaW1hZ2VzIGNvcGllZCB0byB0aGUgY2xpcGJvYXJkQ2xpcGJvYXJkIHJlYWQgYWNjZXNzIGFsbG93ZWRUaGlzIHBhZ2UgY2FuIHNlZSB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuQWx3YXlzIGJsb2NrICQxIGZyb20gc2VlaW5nIHRoZSBjbGlwYm9hcmRDb250aW51ZSBhbGxvd2luZyB0aGlzIHNpdGUgdG8gc2VlIHRoZSBjbGlwYm9hcmRDbGlwYm9hcmQgcmVhZCBhY2Nlc3MgZGVuaWVkVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBzZWVpbmcgdGV4dCBhbmQgaW1hZ2VzIGNvcGllZCB0byB0aGUgY2xpcGJvYXJkQWx3YXlzIGFsbG93ICQxIHRvIHNlZSB0aGUgY2xpcGJvYXJkQ29udGludWUgYmxvY2tpbmcgdGhpcyBzaXRlIGZyb20gc2VlaW5nIHRoZSBjbGlwYm9hcmRCb29rbWFyayB0aGlzIHBhZ2UgdG8gZWFzaWx5IGZpbmQgaXQgbGF0ZXJZb3UgY2FuIGNsaWNrIHRoZSBzdGFyIHRvIGJvb2ttYXJrIGEgcGFnZUdldCBiYWNrIGhlcmUgZmFzdCBieSBib29rbWFya2luZyB0aGlzIHBhZ2VZb3UgY2FuIGJyb3dzZSBwcml2YXRlbHkgdXNpbmcgYW4gaW5jb2duaXRvIHdpbmRvd1VzZSB0aGUgd2ViIHdpdGhvdXQgc2F2aW5nIHlvdXIgYnJvd3NpbmcgaGlzdG9yeSB3aXRoIGFuIGluY29nbml0byB3aW5kb3dVc2luZyBhIHNoYXJlZCBjb21wdXRlcj8gVHJ5IG9wZW5pbmcgYW4gaW5jb2duaXRvIHdpbmRvdy5UbyBicm93c2UgcHJpdmF0ZWx5LCBjbGljayB0aGUgZG90cyBpY29uIG1lbnUgdG8gb3BlbiBhbiBpbmNvZ25pdG8gd2luZG93T3BlbiBhIG5ldyB0YWIgd2l0aCBvbmUgY2xpY2tZb3UgY2FuIGNsaWNrIGhlcmUgdG8gb3BlbiBhIG5ldyB0YWJPcGVuIGEgbmV3IHRhYiB0byBicm93c2UgdHdvIHNpdGVzIGF0IG9uY2V7TlVNX1BBR0VTLCBwbHVyYWwsCiAgICAgICAgPTEge1BhZ2UgVW5yZXNwb25zaXZlfQogICAgICAgIG90aGVyIHtQYWdlcyBVbnJlc3BvbnNpdmV9fXtOVU1fUEFHRVMsIHBsdXJhbCwKICAgICAgICA9MSB7WW91IGNhbiB3YWl0IGZvciBpdCB0byBiZWNvbWUgcmVzcG9uc2l2ZSBvciBleGl0IHRoZSBwYWdlLn0KICAgICAgICBvdGhlciB7WW91IGNhbiB3YWl0IGZvciB0aGVtIHRvIGJlY29tZSByZXNwb25zaXZlIG9yIGV4aXQgdGhlIHBhZ2VzLn19VGhlIHBhZ2UgaGFzIGJlY29tZSB1bnJlc3BvbnNpdmUuIFlvdSBjYW4gd2FpdCBmb3IgaXQgdG8gYmVjb21lIHJlc3BvbnNpdmUgb3IgY2xvc2UgaXQuV2FpdHtOVU1fUEFHRVMsIHBsdXJhbCwKICAgICAgICAgID0xIHtFeGl0IHBhZ2V9CiAgICAgICAgICBvdGhlciB7RXhpdCBwYWdlc319QSBwbHVnaW4gKCQxKSBpc24ndCByZXNwb25kaW5nLlN0b3AgcGx1Z2luQXV0byBzaWduLWluQXV0b21hdGljYWxseSBzaWduIGluIHRvIHdlYnNpdGVzIHVzaW5nIHN0b3JlZCBjcmVkZW50aWFscy4gV2hlbiB0aGUgZmVhdHVyZSBpcyBkaXNhYmxlZCwgeW91IHdpbGwgYmUgYXNrZWQgZm9yIGNvbmZpcm1hdGlvbiBldmVyeSB0aW1lIGJlZm9yZSBzaWduaW5nIGluIHRvIGEgd2Vic2l0ZS53aXRoICQxU2hvd0hpZGVZb3VyIHNhdmVkIHBhc3N3b3JkcyB3aWxsIGFwcGVhciBoZXJlLlNpdGVzIHdoaWNoIG5ldmVyIHNhdmUgcGFzc3dvcmRzIHdpbGwgYXBwZWFyIGhlcmUuIChBbmRyb2lkKVllc05vTm9wZVNhdmVVcGRhdGUgcGFzc3dvcmROZXZlciBmb3IgdGhpcyBzaXRlTmV2ZXJTYXZlIHlvdXIgcGFzc3dvcmRNYW5hZ2UgeW91ciBwYXNzd29yZHNJbXBvcnQgUGFzc3dvcmRzIFRvIENocm9tZUV4cG9ydCBQYXNzd29yZHMgRnJvbSBDaHJvbWVTaWduIGluIHdpdGggJDFNb3ppbGxhIEZpcmVmb3hJY2V3ZWFzZWxTYWZhcmlCb29rbWFya3MgSFRNTCBGaWxlVG8gZmluaXNoIGltcG9ydGluZywgY2xvc2UgYWxsIEZpcmVmb3ggd2luZG93cy5DbG9zZSBGaXJlZm94VHJ5IGFnYWluVGVsbCB1cyB3aGF0J3MgaGFwcGVuaW5nRGVzY3JpYmUgd2hhdCB5b3Ugd2VyZSBkb2luZyB3aGVuIHRoZSB0YWIgY3Jhc2hlZFJlcG9ydCBhbm9ueW1vdXNseUluY2x1ZGUgdGhpcyBzY3JlZW5zaG90U2VuZCBwZXJmb3JtYW5jZSB0cmFjZSBkYXRhRmVlZGJhY2sgUmVwb3J0VGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLiBZb3UgYXJlIG9mZmxpbmUgbm93LCBhbmQgeW91ciByZXBvcnQgd2lsbCBiZSBzZW50IGxhdGVyLlNlbmQgPGEgaHJlZj0iIyIgaWQ9InN5cy1pbmZvLXVybCI+c3lzdGVtIGluZm9ybWF0aW9uPC9hPkZpbGUgd2lsbCBiZSBzZW50IHRvIEdvb2dsZSBmb3IgZGVidWdnaW5nQXR0YWNoIGZpbGVSZWFkaW5nIGZpbGUuLlNlbGVjdGVkIGZpbGUgaXMgdG9vIGJpZyAobWF4IHNpemU6IDNtYikuWW91ciBDaHJvbWUgYW5kIG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbiB3aWxsIGJlIHN1Ym1pdHRlZCBpbiBhZGRpdGlvbgogICAgICAgICAgdG8gYW55IGluZm9ybWF0aW9uIHlvdSBjaG9vc2UgdG8gaW5jbHVkZSBhYm92ZS4gSWYgeW91IGluY2x1ZGUgeW91ciBlbWFpbAogICAgICAgICAgYWRkcmVzcywgR29vZ2xlIG1heSBjb250YWN0IHlvdSByZWdhcmRpbmcgeW91ciBmZWVkYmFjayByZXBvcnQuIFRoaXMgZmVlZGJhY2sKICAgICAgICAgIGlzIHVzZWQgdG8gZGlhZ25vc2UgcHJvYmxlbXMgYW5kIGhlbHAgaW1wcm92ZSBDaHJvbWUuIEFueSBwZXJzb25hbCBpbmZvcm1hdGlvbgogICAgICAgICAgeW91IHN1Ym1pdCwgd2hldGhlciBleHBsaWNpdGx5IG9yIGluY2lkZW50YWxseSB3aWxsIGJlIHByb3RlY3RlZCBpbgogICAgICAgICAgYWNjb3JkYW5jZSB3aXRoIG91ciBwcml2YWN5IHBvbGljaWVzLjxzdHJvbmc+IEJ5IHN1Ym1pdHRpbmcgdGhpcyBmZWVkYmFjaywgeW91IGFncmVlIHRoYXQgR29vZ2xlIG1heSB1c2UgZmVlZGJhY2sKICAgICAgICAgIHRoYXQgeW91IHByb3ZpZGUgdG8gaW1wcm92ZSBhbnkgR29vZ2xlIHByb2R1Y3Qgb3Igc2VydmljZS4KICAgICAgICAgIDwvc3Ryb25nPlBsZWFzZSB0ZWxsIHVzIHdoYXQgaXMgaGFwcGVuaW5nIGJlZm9yZSBzZW5kaW5nIHRoZSBmZWVkYmFjay5TZW5kU3lzdGVtIEluZm9ybWF0aW9uIFByZXZpZXdBZGRpdGlvbmFsIGluZm8gKG9wdGlvbmFsKUlzIENocm9tZSBjcmFzaGluZywgc2hvd2luZyB1bnVzdWFsIHN0YXJ0dXAgcGFnZXMsIHRvb2xiYXJzLCBvciB1bmV4cGVjdGVkIGFkcyB5b3UgY2FuJ3QgZ2V0IHJpZCBvZiwgb3Igb3RoZXJ3aXNlIGNoYW5naW5nIHlvdXIgYnJvd3NpbmcgZXhwZXJpZW5jZT8gWW91IG1heSBiZSBhYmxlIHRvIGZpeCB0aGUgcHJvYmxlbSBieSBydW5uaW5nIHRoZSBDaHJvbWUgQ2xlYW51cCBUb29sLkRvd25sb2FkIENocm9tZSBDbGVhbnVwIFRvb2xTa2lwUnVuIEZsYXNoWW91ciBHb29nbGUgQWNjb3VudCBtYXkgaGF2ZSBvdGhlciBmb3JtcyBvZiBicm93c2luZyBoaXN0b3J5IGF0IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+aGlzdG9yeS5nb29nbGUuY29tPC9hPlRoZSBzZWxlY3RlZCBkYXRhIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBDaHJvbWUgYW5kIHN5bmNlZCBkZXZpY2VzLiBZb3VyIEdvb2dsZSBBY2NvdW50IG1heSBoYXZlIG90aGVyIGZvcm1zIG9mIGJyb3dzaW5nIGhpc3RvcnkgbGlrZSBzZWFyY2hlcyBhbmQgYWN0aXZpdHkgZnJvbSBvdGhlciBHb29nbGUgc2VydmljZXMgYXQgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQxIj5teWFjdGl2aXR5Lmdvb2dsZS5jb208L2E+LkNsZWFyZWQgQ2hyb21lIGRhdGFVc2FnZSBhbmQgaGlzdG9yeSBjYW4gYmUgcmV2aWV3ZWQgYnkgdGhlIG1hbmFnZXIgKCQxKSBvbiBjaHJvbWUuY29tLlRoaXMgaXMgYW4gYWNjb3VudCBmb3Iga2lkcyBtYW5hZ2VkIGJ5ICQxLlRoaXMgaXMgYW4gYWNjb3VudCBmb3Iga2lkcyBtYW5hZ2VkIGJ5ICQxIGFuZCAkMi5TdXBlcnZpc2VkIHVzZXIkMSAoU3VwZXJ2aXNlZCkkMSAoQWNjb3VudCBmb3Iga2lkcykkMQpJIGRvbid0IHRoaW5rIHRoaXMgc2l0ZSBzaG91bGQgYmUgYmxvY2tlZCFCbG9jayB0aGlyZC1wYXJ0eSBjb29raWVzIGFuZCBzaXRlIGRhdGFNaWNyb3Bob25lOkNhbWVyYTpOb25lIGF2YWlsYWJsZVBvcC11cHNQb3AtdXAgZXhjZXB0aW9uc0FsbG93IGFsbCBzaXRlcyB0byBzaG93IHBvcC11cHNEbyBub3QgYWxsb3cgYW55IHNpdGUgdG8gc2hvdyBwb3AtdXBzIChyZWNvbW1lbmRlZClQREYgRG9jdW1lbnRzT3BlbiBQREYgZmlsZXMgaW4gdGhlIGRlZmF1bHQgUERGIHZpZXdlciBhcHBsaWNhdGlvbi5NYW5hZ2UgaGFuZGxlciBzZXR0aW5nc+KAplVuc2FuZGJveGVkIHBsdWdpbiBhY2Nlc3MgZXhjZXB0aW9uc0FsbG93IGFsbCBzaXRlcyB0byB1c2UgYSBwbHVnaW4gdG8gYWNjZXNzIHlvdXIgY29tcHV0ZXJEbyBub3QgYWxsb3cgYW55IHNpdGVzIHRvIHVzZSBhIHBsdWdpbiB0byBhY2Nlc3MgeW91ciBjb21wdXRlclVTQiBEZXZpY2VzTWFuYWdl4oCmWm9vbSBMZXZlbHMoQ2hyb21lIGVycm9yIHBhZ2VzKUNoZWNraW5nIGZvciB1cGRhdGVz4oCmUmVzdG9yZSBkZWZhdWx0IHNlYXJjaCBlbmdpbmU/UmVzdG9yZSBkZWZhdWx0IHN0YXJ0dXAgcGFnZT9SZXN0b3JlIGRlZmF1bHQgaG9tZXBhZ2U/WW91ciBzZWFyY2ggZW5naW5lIHdhcyBjaGFuZ2VkIHRvICQxLllvdXIgc3RhcnR1cCBwYWdlIHdhcyBjaGFuZ2VkIHRvICQxLllvdXIgc3RhcnR1cCBwYWdlcyB3ZXJlIGNoYW5nZWQgdG8gaW5jbHVkZSAkMS5Zb3VyIGhvbWVwYWdlIHdhcyBjaGFuZ2VkIHRvICQxLlR1cm4gb24gYXV0b3VwZGF0ZVVudGl0bGVkIERvY3VtZW50UHJpbnQgRmFpbGVkU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiB0cnlpbmcgdG8gcHJpbnQuICBQbGVhc2UgY2hlY2sgeW91ciBwcmludGVyIGFuZCB0cnkgYWdhaW4uQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmV0cmlldmluZyBwcmludGVyIGNhcGFiaWxpdGllcyBmb3IgcHJpbnRlciAkMS4gVGhpcyBwcmludGVyIGNvdWxkIG5vdCBiZSByZWdpc3RlcmVkIHdpdGggJDIuUmVjZWl2ZWQgYSBub3RpZmljYXRpb24gZm9yIGFuIHVua25vd24gcHJpbnRlci5UaGVyZSB3YXMgYSBwcm9ibGVtIGxpc3RpbmcgcHJpbnRlcnMuIFNvbWUgb2YgeW91ciBwcmludGVycyBtYXkgbm90IGhhdmUgcmVnaXN0ZXJlZCBzdWNjZXNzZnVsbHkgd2l0aCAkMS5UaGUgJDEgY29ubmVjdG9yIHByb2Nlc3MgaGFzIGNyYXNoZWQuIFJlc3RhcnQ/VGhlIHNlbGVjdGVkIHByaW50ZXIgaXMgbm90IGF2YWlsYWJsZSBvciBub3QgaW5zdGFsbGVkIGNvcnJlY3RseS4gIENoZWNrIHlvdXIgcHJpbnRlciBvciB0cnkgc2VsZWN0aW5nIGFub3RoZXIgcHJpbnRlci5QcmludExvYWRpbmcgcHJldmlld1ByaW50IHByZXZpZXcgZmFpbGVkLlRoZSBzZWxlY3RlZCBHb29nbGUgQ2xvdWQgUHJpbnQgZGV2aWNlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFRyeSBzZXR0aW5nIHVwIHRoZSBwcmludGVyIGluIHlvdXIgY29tcHV0ZXIncyBzeXN0ZW0gc2V0dGluZ3MuUHJpbnRpbmfigKZTYXZpbmfigKZBbGxEZXN0aW5hdGlvbkJsYWNrIGFuZCB3aGl0ZUNvbGxhdGVDb2xvckxhbmRzY2FwZVBvcnRyYWl0VHdvLXNpZGVkUGFnZXNMYXlvdXRDb3BpZXNTY2FsZWUuZy4gMS01LCA4LCAxMS0xM3BhZ2UgcmFuZ2UgdGV4dCBib3hwYWdlIHJhbmdlIHJhZGlvIGJ1dHRvblNhdmUgYXMgUERGTG9hZGluZyAkMVRvdGFsOiAkMSAkMiAoJDMgJDQpVG90YWw6ICQxICQyc2hlZXRzIG9mIHBhcGVyc2hlZXQgb2YgcGFwZXJwYWdlcGFnZXNJbnZhbGlkIHBhZ2UgcmFuZ2UsIHVzZSAkMU91dCBvZiBib3VuZHMgcGFnZSByZWZlcmVuY2VPdXQgb2YgYm91bmRzIHBhZ2UgcmVmZXJlbmNlLCBsaW1pdCBpcyAkMVVzZSBhIG51bWJlciB0byBpbmRpY2F0ZSBob3cgbWFueSBjb3BpZXMgdG8gcHJpbnQgKDEgdG8gOTk5KS5TY2FsZSBhbW91bnQgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDEwIGFuZCAyMDAuUHJpbnQgU3BlY2lmaWMgUGFnZXNIZWFkZXJzIGFuZCBmb290ZXJzRml0IHRvIHBhZ2VCYWNrZ3JvdW5kIGdyYXBoaWNzU2VsZWN0aW9uIG9ubHlQcmludCBhcyBpbWFnZU1hcmdpbnNOb25lTWluaW11bVRvcCBtYXJnaW5Cb3R0b20gbWFyZ2luTGVmdCBtYXJnaW5SaWdodCBtYXJnaW5QYXBlciBzaXplUXVhbGl0eSQxeCQyIGRwaSQxIGRwaVByaW50IHVzaW5nIHN5c3RlbSBkaWFsb2figKZTZWxlY3QgYSBkZXN0aW5hdGlvblNob3dpbmcgZGVzdGluYXRpb25zIGZvckFkZCBhY2NvdW504oCmUHJpbnQgdG8gR29vZ2xlIERvY3MgYW5kIG90aGVyIGNsb3VkIGRlc3RpbmF0aW9ucy4gJDFTaWduIGluJDIgdG8gcHJpbnQgdG8gR29vZ2xlIENsb3VkIFByaW50LlNlYXJjaCBkZXN0aW5hdGlvbnNObyBkZXN0aW5hdGlvbnMgZm91bmRTaG93IEFsbOKApigkMSB0b3RhbClSZWNlbnQgRGVzdGluYXRpb25zUHJpbnQgRGVzdGluYXRpb25zQ2hhbmdl4oCmT2ZmbGluZSBmb3IgbW9yZSB0aGFuIGEgeWVhck9mZmxpbmUgZm9yIG1vcmUgdGhhbiBhIG1vbnRoT2ZmbGluZSBmb3IgbW9yZSB0aGFuIGEgd2Vla0N1cnJlbnRseSBvZmZsaW5lTm8gbG9uZ2VyIHN1cHBvcnRlZC5Eb2N1bWVudHMgeW91IHNlbmQgdG8gcHJpbnQgdmlhICQxIGNhbiBiZSByZWFkIGJ5ICQxLk1vcmUgc2V0dGluZ3NGZXdlciBzZXR0aW5nc1ByaW50aW5nIGZhaWxlZC4gUGxlYXNlIGNoZWNrIHlvdXIgcHJpbnRlciBhbmQgdHJ5IGFnYWluLlJlZ2lzdGVyQWR2YW5jZWQgc2V0dGluZ3MgZm9yICQxTm8gbWF0Y2hlcyB3ZXJlIGZvdW5kLkFwcGx5Q2hhbmdlIHByaW50ZXIgb3B0aW9uc+KApkFjY2VwdEFjY2VwdCBmb3IgZ3JvdXBSZWplY3Q8c3Ryb25nPiQxPC9zdHJvbmc+IHdhbnRzIHRvIHNoYXJlIGEgcHJpbnRlciA8c3Ryb25nPiQyPC9zdHJvbmc+IHdpdGggYSBncm91cCB5b3Ugb3duOiA8c3Ryb25nPiQzPC9zdHJvbmc+LiBJZiB5b3UgYWNjZXB0LCBhbGwgZ3JvdXAgbWVtYmVycyB3aWxsIGJlIGFibGUgdG8gcHJpbnQgdG8gdGhlIHByaW50ZXIuPHN0cm9uZz4kMTwvc3Ryb25nPiB3YW50cyB0byBzaGFyZSBhIHByaW50ZXIgPHN0cm9uZz4kMjwvc3Ryb25nPiB3aXRoIHlvdS5TZWxlY3RCeSBzZWxlY3RpbmcgdGhpcyBwcmludGVyLCB5b3UgYXJlIGdpdmluZyB0aGUgZm9sbG93aW5nIGV4dGVuc2lvbiB0aGUgcGVybWlzc2lvbiB0byBhY2Nlc3MgeW91ciBwcmludGVyOiQxIGNvdWxkIG5vdCBjb21tdW5pY2F0ZSB3aXRoIHRoaXMgcHJpbnRlci4gTWFrZSBzdXJlIHRoZSBwcmludGVyIGlzIHBsdWdnZWQgaW4gYW5kIHRyeSBhZ2Fpbi5QcmludCB1c2luZyBzeXN0ZW0gZGlhbG9n4oCmICQxV2FpdGluZyBmb3IgYXZhaWxhYmxlIHNvY2tldOKApldhaXRpbmcgZm9yICQx4oCmUHJvY2Vzc2luZyByZXF1ZXN04oCmV2FpdGluZyBmb3IgY2FjaGXigKZXYWl0aW5nIGZvciBBcHBDYWNoZeKApldhaXRpbmcgZm9yIHByb3h5IHR1bm5lbOKAplJlc29sdmluZyBwcm94eeKAplJlc29sdmluZyBob3N0IGluIHByb3h5IHNjcmlwdOKApkRvd25sb2FkaW5nIHByb3h5IHNjcmlwdOKAplJlc29sdmluZyBob3N04oCmQ29ubmVjdGluZ+KApkVzdGFibGlzaGluZyBzZWN1cmUgY29ubmVjdGlvbuKAplNlbmRpbmcgcmVxdWVzdOKAplVwbG9hZGluZyAoJDElKeKApldhaXRpbmcgZm9yIG90aGVyIHJlcXVlc3RzIHRvIGNvbXBsZXRl4oCmRHVwbGljYXRlQ2xvc2UgdGFiQ2xvc2UgdGFic0Nsb3NlIG90aGVyIHRhYnNDbG9zZSB0YWJzIHRvIHRoZSByaWdodFBpbiB0YWJQaW4gdGFic1VucGluIHRhYlVucGluIHRhYnNNdXRlIHRhYk11dGUgdGFic1VubXV0ZSB0YWJVbm11dGUgdGFic011dGUgc2l0ZU11dGUgc2l0ZXNVbm11dGUgc2l0ZVVubXV0ZSBzaXRlc0Jvb2ttYXJrIGFsbCB0YWJz4oCmT3BlbiBicm93c2VyIHdpbmRvdyQxIFNjcmVlbiBTaGFyaW5nIFJlcXVlc3REbyB5b3Ugd2FudCAkMSB0byBzaGFyZSB5b3VyIHNjcmVlbj9EbyB5b3Ugd2FudCAkMSB0byBzaGFyZSB5b3VyIHNjcmVlbiBhbmQgYXVkaW8gb3V0cHV0PyQxIGlzIHNoYXJpbmcgeW91ciBzY3JlZW4uJDEgaXMgc2hhcmluZyB5b3VyIHNjcmVlbiB3aXRoICQyLiQxIGlzIHNoYXJpbmcgeW91ciBzY3JlZW4gYW5kIGF1ZGlvLiQxIGlzIHNoYXJpbmcgeW91ciBzY3JlZW4gYW5kIGF1ZGlvIHdpdGggJDIuJDEgaXMgc2hhcmluZyBhIHdpbmRvdy4kMSBpcyBzaGFyaW5nIGEgd2luZG93IHdpdGggJDIuJDEgaXMgc2hhcmluZyBhIENocm9tZSB0YWIuJDEgaXMgc2hhcmluZyBhIENocm9tZSB0YWIgd2l0aCAkMi4kMSBpcyBzaGFyaW5nIGEgQ2hyb21lIHRhYiBhbmQgYXVkaW8uJDEgaXMgc2hhcmluZyBhIENocm9tZSB0YWIgYW5kIGF1ZGlvIHdpdGggJDIuU3RvcCBzaGFyaW5nJDEgd2FudHMgcGVybWFuZW50IGFjY2VzcyB0byBhIGNlcnRpZmljYXRlIHRvIGF1dGhlbnRpY2F0ZSBpdHNlbGYgb24geW91ciBiZWhhbGYuVGhpcyBmcmFtZSB3YXMgYmxvY2tlZCBiZWNhdXNlIGl0IGNvbnRhaW5zIHNvbWUgaW5zZWN1cmUgY29udGVudC5TZWxlY3QgYSBjZXJ0aWZpY2F0ZVNlbGVjdCBhIGNlcnRpZmljYXRlIHRvIGF1dGhlbnRpY2F0ZSB5b3Vyc2VsZiB0byAkMVNpZ24gaW4gdG8gU2VjdXJpdHkgRGV2aWNlUGxlYXNlIHNpZ24gaW4gdG8gJDEgdG8gaW1wb3J0IGNsaWVudCBjZXJ0aWZpY2F0ZSBmcm9tICQyLlBsZWFzZSBzaWduIGluIHRvICQxIHRvIGF1dGhlbnRpY2F0ZSB0byAkMiB3aXRoIHlvdXIgY2VydGlmaWNhdGUuUGxlYXNlIHNpZ24gaW4gdG8gJDEuUGxlYXNlIHNpZ24gaW4gdG8gJDEgdG8gaW1wb3J0IHRoZSBjbGllbnQgY2VydGlmaWNhdGUuUGxlYXNlIHNpZ24gaW4gdG8gJDEgdG8gZXhwb3J0IHRoZSBjbGllbnQgY2VydGlmaWNhdGUuUGFzc3dvcmQ6VW5sb2NrWW91IGNhbiBzZWFyY2ggZnJvbSBoZXJlIHdpdGggJDFUeXBlIHRvIHNlYXJjaCBvciBlbnRlciBhIFVSTCB0byBuYXZpZ2F0ZSAtIGV2ZXJ5dGhpbmcganVzdCB3b3Jrcy5IZWxwIG91ciBlbmdpbmVlcnMgaW52ZXN0aWdhdGUgYW5kIGZpeCB0aGlzIGNyYXNoLiBMaXN0IGV4YWN0IHN0ZXBzIGlmIHlvdSBjYW4uIE5vIGRldGFpbCBpcyB0b28gc21hbGwhClNlbmQgZmVlZGJhY2tUYWIga2lsbGVkIGZlZWRiYWNrLgpZb3VyIGhvbWUgcGFnZSBoYXMgYmVlbiBzZXQuQWRkIGEgY29udGFjdEJpbGxpbmcgYWRkcmVzc0FkZCBiaWxsaW5nIGFkZHJlc3NBZGQgcHJpbnRlcnNZb3UgaGF2ZSByZWdpc3RlcmVkIHlvdXIgcHJpbnRlcnMgd2l0aCAkMSB1c2luZyB0aGUgYWNjb3VudCAkMkRpc2Nvbm5lY3QgcHJpbnRlcnNFbmFibGluZ+KAplRoaXMgc2V0dGluZyBpcyBlbmZvcmNlZCBieSB5b3VyIGFkbWluaXN0cmF0b3IuVGhpcyBzZXR0aW5nIGlzIGVuZm9yY2VkIGJ5IGFuIGV4dGVuc2lvbi5Zb3UgYXJlIGZvbGxvd2luZyB0aGUgYWRtaW5pc3RyYXRvcidzIHJlY29tbWVuZGF0aW9uIGZvciB0aGlzIHNldHRpbmcuWW91ciBhZG1pbmlzdHJhdG9yIHJlY29tbWVuZHMgYSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhpcyBzZXR0aW5nLk5vdCBmcm9tIENocm9tZSBXZWIgU3RvcmUuSW5zdGFsbGVkIGJ5IGEgdGhpcmQgcGFydHkuSW5zdGFsbGVkIGJ5IGVudGVycHJpc2UgcG9saWN5Lkluc3RhbGxlZCBiZWNhdXNlIG9mIGRlcGVuZGVudCBleHRlbnNpb24ocykuVGhpcyBleHRlbnNpb24gY29udGFpbnMgbWFsd2FyZS5UaGlzIGV4dGVuc2lvbiBjb250YWlucyBhIHNlcmlvdXMgc2VjdXJpdHkgdnVsbmVyYWJpbGl0eS5UaGlzIGV4dGVuc2lvbiB2aW9sYXRlcyB0aGUgQ2hyb21lIFdlYiBTdG9yZSBwb2xpY3kuRGlzYWJsZWQgYnkgQ2hyb21lLiBUaGlzIGV4dGVuc2lvbiBtYXkgYmUgdW5zYWZlLlJlc2V0IHNldHRpbmdzUmVzdG9yZSBzZXR0aW5ncyB0byB0aGVpciBvcmlnaW5hbCBkZWZhdWx0cy5UaGlzIHdpbGwgcmVzZXQgeW91ciBzdGFydHVwIHBhZ2UsIG5ldyB0YWIgcGFnZSwgc2VhcmNoIGVuZ2luZSwgYW5kIHBpbm5lZCB0YWJzLiBJdCB3aWxsIGFsc28gZGlzYWJsZSBhbGwgZXh0ZW5zaW9ucyBhbmQgY2xlYXIgdGVtcG9yYXJ5IGRhdGEgbGlrZSBjb29raWVzLiBZb3VyIGJvb2ttYXJrcywgaGlzdG9yeSBhbmQgc2F2ZWQgcGFzc3dvcmRzIHdpbGwgbm90IGJlIGNsZWFyZWQuJDEgd2FudHMgdG8gcmVzZXQgeW91ciBzZXR0aW5ncy4kMSB3YW50cyB0byByZXN0b3JlIHlvdXIgQ2hyb21lIHNldHRpbmdzIHRvIHRoZWlyIG9yaWdpbmFsIGRlZmF1bHRzLiBUaGlzIHdpbGwgcmVzZXQgeW91ciBob21lcGFnZSwgbmV3IHRhYiBwYWdlIGFuZCBzZWFyY2ggZW5naW5lLCBkaXNhYmxlIHlvdXIgZXh0ZW5zaW9ucywgYW5kIHVucGluIGFsbCB0YWJzLiBJdCB3aWxsIGFsc28gY2xlYXIgb3RoZXIgdGVtcG9yYXJ5IGFuZCBjYWNoZWQgZGF0YSwgc3VjaCBhcyBjb29raWVzLCBjb250ZW50IGFuZCBzaXRlIGRhdGEuQSBjbGVhbnVwIHRvb2xMb2NhbGVTdGFydHVwIFVSTHNTdGFydHVwIHR5cGVIb21lcGFnZUhvbWVwYWdlIGlzIHRoZSBOZXcgVGFiIHBhZ2VTaG93IEhvbWUgYnV0dG9uRGVmYXVsdCBzZWFyY2ggZW5naW5lU2hvcnRjdXQgdGFyZ2V0c1Byb2Nlc3Npbmcgc2hvcnRjdXRz4oCmTW9udGhZZWFyUmVzZXQgdG8gZGVmYXVsdCB0aGVtZVVzZSBHVEsrIHRoZW1lVXNlIENsYXNzaWMgdGhlbWVVc2Ugc3lzdGVtIHRpdGxlIGJhciBhbmQgYm9yZGVyc0dldCB0aGVtZXNDb29raWVzIGluIHVzZVRoZSBmb2xsb3dpbmcgY29va2llcyB3ZXJlIHNldCB3aGVuIHlvdSB2aWV3ZWQgdGhpcyBwYWdlVGhlIGZvbGxvd2luZyBjb29raWVzIHdlcmUgYmxvY2tlZFRoZSBmb2xsb3dpbmcgY29va2llcyB3ZXJlIGJsb2NrZWQgKHRoaXJkLXBhcnR5IGNvb2tpZXMgYXJlIGJlaW5nIGJsb2NrZWQgd2l0aG91dCBleGNlcHRpb24pQ29va2llcyBmcm9tICQxIGFsbG93ZWRDb29raWVzIGZyb20gJDEgYmxvY2tlZENvb2tpZXMgZnJvbSAkMSB3aWxsIGJlIGNsZWFyZWQgb24gZXhpdENsZWFyZWQgb24gRXhpdE5ldyBjb29raWUgc2V0dGluZ3Mgd2lsbCB0YWtlIGVmZmVjdCBhZnRlciByZWxvYWRpbmcgdGhlIHBhZ2UuWW91ciBib29rbWFya3MsIGhpc3RvcnksIGFuZCBvdGhlciBzZXR0aW5ncyB3aWxsIGJlIHN5bmNlZCB0byB5b3VyIEdvb2dsZSBBY2NvdW50LkNyZWF0ZSBhIG5ldyBwcm9maWxlTGluayBkYXRhVGhpcyBhY2NvdW50IGlzIG1hbmFnZWQgYnkgJDFTaWduIGluIGNlcnRpZmljYXRpb24gaXMgbm90IHZhbGlkLCB3aW5kb3cgY2xvc2luZyBpbiB7MCxudW1iZXIsMDB9IDogezEsbnVtYmVyLDAwfVNpZ24gaW4gbm93QWxsIGJyb3dzZXIgd2luZG93cyB3aWxsIHNvb24gYmUgY2xvc2VkIGF1dG9tYXRpY2FsbHkgd2l0aG91dCBzaWduIGluLldoZW4gdGhlIGJyb3dzaW5nIHNlc3Npb24gZW5kc0FueSBraW5kIG9mIGNvbm5lY3Rpb25TZWN1cmUgY29ubmVjdGlvbnMgb25seVNhbWUtc2l0ZSBjb25uZWN0aW9ucyBvbmx5U2VjdXJlIHNhbWUtc2l0ZSBjb25uZWN0aW9ucyBvbmx5Tm8gKEh0dHBPbmx5KW5vIGNvb2tpZSBzZWxlY3RlZERlc2NyaXB0aW9uOjx1bm5hbWVkPk9yaWdpbjpTaXplIG9uIGRpc2s6TGFzdCBtb2RpZmllZDpBcHBsaWNhdGlvbiBjYWNoZXNNYW5pZmVzdDpXZWIgZGF0YWJhc2VzU2Vzc2lvbiBzdG9yYWdlSW5kZXhlZCBkYXRhYmFzZUluZGV4ZWQgZGF0YWJhc2VzRmlsZSBzeXN0ZW1zTGFzdCBhY2Nlc3NlZDpDaGFubmVsIElEc2VjZHNhX3NpZ25Zb3XigJlyZSBicm93c2luZyBhcyBhIEd1ZXN0UGFnZXMgeW91IHZpZXcgaW4gdGhpcyB3aW5kb3cgd29u4oCZdCBhcHBlYXIgaW4gdGhlIGJyb3dzZXIgaGlzdG9yeSBhbmQgdGhleSB3b27igJl0IGxlYXZlIG90aGVyIHRyYWNlcywgbGlrZSBjb29raWVzLCBvbiB0aGUgY29tcHV0ZXIgYWZ0ZXIgeW91IGNsb3NlIGFsbCBvcGVuIEd1ZXN0IHdpbmRvd3MuIEFueSBmaWxlcyB5b3UgZG93bmxvYWQgd2lsbCBiZSBwcmVzZXJ2ZWQsIGhvd2V2ZXIuVXNlIGxlZnQgYW5kIHJpZ2h0IGFycm93IGtleXMgdG8gbmF2aWdhdGUuQWRkIG1vcmUgYXBwc01vc3QgdmlzaXRlZFJlc3RvcmUgYWxsVGhlbWUgY3JlYXRlZCBieVRodW1ibmFpbCByZW1vdmVkLkRvbid0IHNob3cgb24gdGhpcyBwYWdlR28gdG8gJDFNb3JlICQxUGxlYXNlIGNoZWNrIHlvdXIgbWljcm9waG9uZS5Wb2ljZSBzZWFyY2ggaW4geW91ciBsYW5ndWFnZSBpcyBub3QgYXZhaWxhYmxlLkxpc3RlbmluZ+KApk5vIEludGVybmV0IGNvbm5lY3Rpb24uRGlkbid0IGdldCB0aGF0LlBsZWFzZSBjaGVjayB5b3VyIG1pY3JvcGhvbmUgYW5kIGF1ZGlvIGxldmVscy5Vbmtub3duIGVycm9yLlZvaWNlIHNlYXJjaCBoYXMgYmVlbiB0dXJuZWQgb2ZmLlNwZWFrIG5vd1dhaXRpbmfigKZWaWV3IGluIFdlYiBTdG9yZUFwcCBpbmZvT3BlbiBhcyBwaW5uZWQgdGFiT3BlbiBhcyByZWd1bGFyIHRhYk9wZW4gZnVsbCBzY3JlZW5PcGVuIG1heGltaXplZE9wZW4gaW4gYSB0YWJFeGl0IGFuZCBjaGlsZGxvY2tDbG9zZSBhbGwgeW91ciB3aW5kb3dzQWRkIGFjY291bnRTaWduIGluIGFnYWluUmVtb3ZlIGFjY291bnRzZXR0aW5nc1N5bmNlZCB0b1N5bmMgdG8gJDFTeW5jIHRvIHlvdXIgYWNjb3VudFNpZ24gaW4gZm9yIGEgcGVyc29uYWxpemVkIGJyb3dzaW5nIGV4cGVyaWVuY2UsIHN5bmNlZCBhY3Jvc3MgeW91ciBkZXZpY2VzU3luYyB0byBhbm90aGVyIGFjY291bnRZb3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3Mgd2lsbCBiZSBzeW5jZWQgdG8geW91ciBHb29nbGUgQWNjb3VudC5VaC1vaCFTZWUgd2hhdCdzIG5ld0V4aXQgR3Vlc3RTaWduIGluIHRvIGdldCB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3Mgb24gYWxsIHlvdXIgZGV2aWNlcy5BZGQgYWNjb3VudCBmb3IgJDFZb3VyIGFjY291bnRzSGlkZSBhY2NvdW50c1N3aXRjaCBwZXJzb25HbyBpbmNvZ25pdG9NYW5hZ2UgcGVvcGxlRWRpdCBwZXJzb24sICQxRWRpdCBwZXJzb24sICQxLCAkMkd1ZXN0Rmlyc3QgdXNlckRlZmF1bHQgUHJvZmlsZVVzZXIgJDFQZXJzb24gJDFZb3VBZ2VudCBYU3BhbmRleE1pYUJ1dHRvbmRvd25TbmVha3lNb29uYmVhbUF3ZXNvbWVQZXRhbHNTbGljZUZyaXR6UGlja2xlc0ZsdWZmeVN3ZWV0bmVzc1NwYXJreVNhcmF0b2dhTGVtb25hZGVCbHVlc3lTaGFkeVNoYWRvd0RlZmF1bHQgd2hpdGUgYXZhdGFyRGVmYXVsdCB0ZWFsIGF2YXRhckRlZmF1bHQgYmx1ZSBhdmF0YXJEZWZhdWx0IGdyZWVuIGF2YXRhckRlZmF1bHQgb3JhbmdlIGF2YXRhckRlZmF1bHQgcHVycGxlIGF2YXRhckRlZmF1bHQgcmVkIGF2YXRhckRlZmF1bHQgeWVsbG93IGF2YXRhclNweUhlcm9BdGhsZXRlQnVzaW5lc3NtYW5OaW5qYUFsaWVuQXdlc29tZSBmYWNlWWVsbG93IGFuZCB3aGl0ZSBmbG93ZXJQaXp6YSBzbGljZVNvY2NlciBiYWxsSGFtYnVyZ2VyQ2F0Q3VwY2FrZURvZ0hvcnNlTWFydGluaSBnbGFzc011c2ljIG5vdGVTdW4gYW5kIGNsb3Vkc05vdCBzaWduZWQgaW5BZGQgcGVyc29u4oCmTWFuYWdlIHlvdXIgc3VwZXJ2aXNlZCB1c2VycyB2aWEgdGhlIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+U3VwZXJ2aXNlZCBVc2VycyBEYXNoYm9hcmQ8L2E+LkRlbGV0ZSB0aGlzIHBlcnNvbkxldCBhbnlvbmUgYWRkIGEgcGVyc29uIHRvIENocm9tZUVuYWJsZSBHdWVzdCBicm93c2luZ1NpZ25pbmcgaW4gd2l0aCB0aGlzIHVzZXJuYW1lIGhhcyBiZWVuIGRpc2FibGVkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvci5TdXBlcnZpc2VkIHVzZXJzIGhhdmUgYmVlbiBkaXNhYmxlZCBieSB5b3VyIGFkbWluaXN0cmF0b3IuVGhpcyB1c2VyIGhhcyBiZWVuIGRpc2FibGVkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvci5DYW4ndCB1c2UgdGhpcyBwcm9maWxlWW91ciBhZG1pbmlzdHJhdG9yIGhhcyBtYWRlIGEgc3lzdGVtLXdpZGUgY2hhbmdlIHRoYXQgZGlzYWJsZXMgc29tZSBvbGQgcHJvZmlsZXMuVG8gY29udGludWUsIGNsaWNrIE9LLCB0aGVuIGNsaWNrIEFkZCBQZXJzb24gdG8gY3JlYXRlIGEgbmV3IHByb2ZpbGUgZm9yIHlvdXIgZW1haWwgYWRkcmVzcy5UbyBjb250aW51ZSwgY2xpY2sgT0ssIHRoZW4gY2xpY2sgQWRkIFBlcnNvbiB0byBjcmVhdGUgYSBuZXcgcHJvZmlsZSBmb3IgeW91ciAkMSBlbWFpbCBhZGRyZXNzLkFsdGhvdWdoIHlvdSBjYW4gbm8gbG9uZ2VyIGFjY2VzcyB5b3VyIG9sZCBwcm9maWxlLCB5b3UgY2FuIHJlbW92ZSBpdC5UaGlzIGFjY291bnQgaXMgYWxyZWFkeSBiZWluZyB1c2VkIG9uIHRoaXMgY29tcHV0ZXIuVGhpcyBhY2NvdW50IGlzIGFscmVhZHkgYmVpbmcgdXNlZCBvbiB0aGlzIGNvbXB1dGVyIGJ5ICQxLllvdSd2ZSBzaWduZWQgaW4gYW5kIHR1cm5lZCBvbiBTeW5jR2V0IGV2ZW4gbW9yZSBmcm9tIENocm9tZUNocm9tZSBTeW5jWW91ciBib29rbWFya3MsIGhpc3RvcnksIHBhc3N3b3JkcywgYW5kIG90aGVyIHNldHRpbmdzIHdpbGwgYmUgc3luY2VkIHRvIHlvdXIgR29vZ2xlIEFjY291bnQgc28geW91IGNhbiB1c2UgdGhlbSBvbiBhbGwgeW91ciBkZXZpY2VzU3luYyB5b3VyIGJvb2ttYXJrcywgcGFzc3dvcmRzLCBhbmQgaGlzdG9yeSBvbiBhbGwgeW91ciBkZXZpY2VzR29vZ2xlIG1heSB1c2UgeW91ciBicm93c2luZyBoaXN0b3J5IHRvIHBlcnNvbmFsaXplIFNlYXJjaCwgYWRzLCBhbmQgb3RoZXIgR29vZ2xlIHNlcnZpY2VzR2V0IG1vcmUgcGVyc29uYWxpemVkIGV4cGVyaWVuY2VzLCBzdWNoIGFzIGJldHRlciBjb250ZW50IHN1Z2dlc3Rpb25zIGFuZCBzbWFydGVyIFRyYW5zbGF0ZUdvb2dsZSBtYXkgdXNlIHlvdXIgYnJvd3NpbmcgaGlzdG9yeSB0byBwZXJzb25hbGl6ZSBTZWFyY2ggYW5kIG90aGVyIEdvb2dsZSBzZXJ2aWNlc0JyaW5nIHBvd2VyZnVsIEdvb2dsZSBzZXJ2aWNlcyBsaWtlIHNwZWxsIGNoZWNrIGFuZCB0YXAgdG8gc2VhcmNoIHRvIENocm9tZVdhbnQgdG8gbWFuYWdlIHN5bmMgYW5kIHBlcnNvbmFsaXphdGlvbiBiZWZvcmUgdGhleeKAmXJlIHR1cm5lZCBvbj8gVmlzaXQgPGEgaWQ9InNldHRpbmdzTGluayIgaHJlZj0iY2hyb21lOi8vc2V0dGluZ3MiPlNldHRpbmdzPC9hPi5Zb3UgY2FuIGN1c3RvbWl6ZSB3aGF0IGluZm9ybWF0aW9uIEdvb2dsZSBjb2xsZWN0cyBpbiA8YSBpZD0ic2V0dGluZ3NMaW5rIiBocmVmPSJjaHJvbWU6Ly9zZXR0aW5ncyI+U2V0dGluZ3M8L2E+IGFueXRpbWUuR29vZ2xlIG1heSB1c2UgeW91ciBicm93c2luZyBhY3Rpdml0eSwgY29udGVudCBvbiBzb21lIHNpdGVzIHlvdSB2aXNpdCwgYW5kIG90aGVyIGJyb3dzZXIgaW50ZXJhY3Rpb25zIHRvIHBlcnNvbmFsaXplIENocm9tZSBhbmQgb3RoZXIgR29vZ2xlIHNlcnZpY2VzIGxpa2UgVHJhbnNsYXRlLCBTZWFyY2gsIGFuZCBhZHMuWWVzLCBJJ20gaW5TeW5jIGlzIGRpc2FibGVkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvcllvdXIgYWRtaW5pc3RyYXRvciBoYXMgZGlzYWJsZWQgc3luY2luZyBvZiB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3MuU2lnbiBpbiBhbnl3YXlDYW5jZWwgc2lnbiBpbkNhbid0IHNpZ24gaW5DYW4ndCBzaWduIGluIHRvICQxU3dpdGNoIHRvICQxVGhpcyB3YXNuJ3QgbWUuQ3JlYXRlIGEgbmV3IHByb2ZpbGUgZm9yICQxVGhpcyB3YXMgbWUuQWRkIG15IGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3MgdG8gJDEkMSB3YXMgYmxvY2tlZCBiZWNhdXNlIGl0IGlzIG91dCBvZiBkYXRlLlJ1biB0aGlzIHRpbWUkMSBoYXMgY3Jhc2hlZC5Db3VsZCBub3QgbG9hZCAkMS5PcGVuICQxP09wZW4gJDFBbHdheXMgb3BlbiB0aGVzZSB0eXBlcyBvZiBsaW5rcyBpbiB0aGUgYXNzb2NpYXRlZCBhcHBJbmRleCBvZiBMT0NBVElPTltwYXJlbnQgZGlyZWN0b3J5XVNpemVEYXRlIE1vZGlmaWVkT2gsIG5vISBUaGlzIHNlcnZlciBpcyBzZW5kaW5nIGRhdGEgJDEgY2FuJ3QgdW5kZXJzdGFuZC4gUGxlYXNlIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZW50cnkiPnJlcG9ydCBhIGJ1ZzwvYT4sIGFuZCBpbmNsdWRlIHRoZSA8YSBocmVmPSJMT0NBVElPTiI+cmF3IGxpc3Rpbmc8L2E+LldlYnBhZ2UsIEhUTUwgT25seVdlYnBhZ2UsIFNpbmdsZSBGaWxlV2VicGFnZSwgQ29tcGxldGVQcm9maWxlIGVycm9yIG9jY3VycmVkU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiBvcGVuaW5nIHlvdXIgcHJvZmlsZS4gU29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiBvcGVuaW5nIHlvdXIgcHJvZmlsZS4gUGxlYXNlIHNpZ24gb3V0IHRoZW4gc2lnbiBpbiBhZ2Fpbi5TZW5kIGZlZWRiYWNrIHRvIGhlbHAgdXMgZml4IHRoaXMgaXNzdWUuUGxlYXNlIGhlbHAgb3VyIGVuZ2luZWVycyBmaXggdGhpcyBwcm9ibGVtLiBUZWxsIHVzIHdoYXQgaGFwcGVuZWQgcmlnaHQgYmVmb3JlIHlvdSBnb3QgdGhlIHByb2ZpbGUgZXJyb3IgbWVzc2FnZToKQ2Fubm90IHN0YXJ0IENocm9tZSBiZWNhdXNlIHNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gb3BlbmluZyB5b3VyIHByb2ZpbGUuIFRyeSB0byByZXN0YXJ0IENocm9tZS4kMSBjYW4gbm90IGJlIHJ1biBhcyByb290LlBsZWFzZSBzdGFydCAkMSBhcyBhIG5vcm1hbCB1c2VyLiBJZiB5b3UgbmVlZCB0byBydW4gYXMgcm9vdCBmb3IgZGV2ZWxvcG1lbnQsIHJlcnVuIHdpdGggdGhlIC0tbm8tc2FuZGJveCBmbGFnLkZhaWxlZCBUbyBDcmVhdGUgRGF0YSBEaXJlY3RvcnlUaGlzIHNpdGUgaXMgYXR0ZW1wdGluZyB0byBkb3dubG9hZCBtdWx0aXBsZSBmaWxlcy4gRG8geW91IHdhbnQgdG8gYWxsb3cgdGhpcz9Eb3dubG9hZCBtdWx0aXBsZSBmaWxlc1JlY2VudCB0YWJze05VTV9UQUJTLCBwbHVyYWwsID0xIHsxIHRhYn0gb3RoZXIgeyMgdGFic319Jkhpc3Rvcnlkb3dubG9hZENyZWF0ZWQgbmV3IHdpbmRvdyBpbiBleGlzdGluZyBicm93c2VyIHNlc3Npb24uWW91ciBkYXRhIHdhcyBlbmNyeXB0ZWQgd2l0aCB5b3VyIEdvb2dsZSBwYXNzd29yZCBhcyBvZiAkMS4gRW50ZXIgaXQgdG8gc3RhcnQgc3luYy5TaWduZWQgaW4gYXMgJDEuT24gLSBzeW5jIGV2ZXJ5dGhpbmdPbiAtIGN1c3RvbSBzZXR0aW5nc1NpZ24gSW5TaWduLWluIEVycm9yU3luYyBFcnJvclN5bmMgaXNuJ3Qgd29ya2luZ1NpZ24taW4gZGV0YWlscyBhcmUgb3V0IG9mIGRhdGVQYXNzcGhyYXNlIHJlcXVpcmVkIHRvIHN0YXJ0IHN5bmNFbnRlciBwYXNzcGhyYXNlVHJ5IHNpZ25pbmcgaW4gYWdhaW5Ucnkgc2lnbmluZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW5TaWduIG91dE9wZW4gc2V0dGluZ3NVcGRhdGXigKZPS+KAplN5bmMgRXJyb3I6IFVwZGF0ZSBTeW5jIHBhc3NwaHJhc2XigKZTaWduIGluIGFnYWlu4oCmU2lnbiBpbiB0byBnZXQgeW91ciBib29rbWFya3MsIGhpc3RvcnksIHBhc3N3b3JkcyBhbmQgb3RoZXIgc2V0dGluZ3Mgb24gYWxsIHlvdXIgZGV2aWNlcy4gWW91J2xsIGFsc28gYXV0b21hdGljYWxseSBiZSBzaWduZWQgaW4gdG8geW91ciBHb29nbGUgc2VydmljZXMuU2lnbiBpbiB0byAkMVNldCB1cCBzeW5j4oCmVGhlIHN5bmMgc2VydmVyIGlzIGJ1c3ksIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuU3luYyBpcyBkaXNhYmxlZCBieSB5b3VyIGFkbWluaXN0cmF0b3IuU3luYyBoYXMgYmVlbiBzdG9wcGVkIHZpYSB0aGUgR29vZ2xlIERhc2hib2FyZC5Db25maXJtIHN5bmMgc2V0dGluZ3MgdG8gc3RhcnQgc3luYy5NYW5hZ2UgeW91ciBzeW5jZWQgZGF0YSBvbiA8YSBocmVmPSIkMSIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBEYXNoYm9hcmQ8L2E+Lk1hbmFnZSB5b3VyIHN5bmNlZCBkYXRhIGFuZCBkZXZpY2VzIG9uIDxhIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+Q2hyb21lIERhc2hib2FyZDwvYT4uQXV0aGVudGljYXRpbmfigKZFcnJvciBzaWduaW5nIGluLk9vcHMsIFN5bmMgaGFzIHN0b3BwZWQgd29ya2luZy5TeW5jIGlzbuKAmXQgd29ya2luZy4gVHJ5IHNpZ25pbmcgaW4gYWdhaW4uU3luYyBpc27igJl0IHdvcmtpbmcuIFRyeSBzaWduaW5nIG91dCBhbmQgYmFjayBpbiBhZ2Fpbi5FbnRlciB5b3VyIHBhc3NwaHJhc2UgdG8gc3RhcnQgc3luY09ubHkgc29tZW9uZSB3aXRoIHlvdXIgcGFzc3BocmFzZSBjYW4gcmVhZCB5b3VyIGVuY3J5cHRlZCBkYXRhLiBUaGUgcGFzc3BocmFzZSBpcyBub3Qgc2VudCB0byBvciBzdG9yZWQgYnkgR29vZ2xlLiBJZiB5b3UgZm9yZ2V0IHlvdXIgcGFzc3BocmFzZSwgeW91IHdpbGwgbmVlZCB0b3Jlc2V0IHN5bmNDb3VsZG4ndCBjb25uZWN0IHRvIHRoZSBzeW5jIHNlcnZlci4gUmV0cnlpbmfigKZTaWduIGluIGFnYWluIHRvIHN0YXJ0IHN5bmNEaXNjb25uZWN0IHlvdXIgR29vZ2xlIEFjY291bnTigKZEaXNjb25uZWN0IHlvdXIgR29vZ2xlIEFjY291bnRCeSBkaXNjb25uZWN0aW5nIHlvdXIgR29vZ2xlIEFjY291bnQgZnJvbSAkMSwgeW91ciBkYXRhIHdpbGwgcmVtYWluIG9uIHRoaXMgY29tcHV0ZXIgYnV0IGNoYW5nZXMgd2lsbCBubyBsb25nZXIgYmUgc3luY2VkIHRvIHlvdXIgR29vZ2xlIEFjY291bnQuIERhdGEgYWxyZWFkeSBzdG9yZWQgaW4geW91ciBHb29nbGUgQWNjb3VudCB3aWxsIHJlbWFpbiB0aGVyZSB1bnRpbCB5b3UgcmVtb3ZlIGl0IHVzaW5nIDxhIGhyZWY9IiQyIiB0YXJnZXQ9Il9ibGFuayI+R29vZ2xlIERhc2hib2FyZDwvYT4uQWxzbyBjbGVhciB5b3VyIGhpc3RvcnksIGJvb2ttYXJrcywgc2V0dGluZ3MsIGFuZCBvdGhlciBDaHJvbWUgZGF0YSBzdG9yZWQgb24gdGhpcyBkZXZpY2UuQWR2YW5jZWQgc2V0dGluZ3MkMSBjYW4gbm93IHN5bmMgeW91ciBwYXNzd29yZHMuU2V0dXAgaW4gcHJvZ3Jlc3PigKZZb3UncmUgbm93IHNpZ25lZCBpbiB0byAkMS4gWW91ciBib29rbWFya3MsIGhpc3RvcnksIGFuZCBvdGhlciBzZXR0aW5ncyBhcmUgYmVpbmcgc3luY2VkIHdpdGggeW91ciBHb29nbGUgQWNjb3VudC5BZHZhbmNlZOKApkNvbmZpcm0gc3luYyBzZXR0aW5nc09LLCBzeW5jIGV2ZXJ5dGhpbmdGYWlsZWQgdG8gc3RhcnQgdXAgdGhlIHN5bmMgYmFja2VuZFBsZWFzZSBtYWtlIHN1cmUgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gaXMgd29ya2luZyBhbmQgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMsIHBsZWFzZSBzaWduIG91dCBhbmQgc2lnbiBpbiBhZ2FpbiB0byByZWZyZXNoIHlvdXIgY3JlZGVudGlhbHMuJDEgc2VjdXJlbHkgc3luY3MgeW91ciBkYXRhIHdpdGggeW91ciBHb29nbGUgYWNjb3VudC4gS2VlcCBldmVyeXRoaW5nIHN5bmNlZCBvciBjdXN0b21pemUgc3luY2VkIGRhdGEgdHlwZXMgYW5kIGVuY3J5cHRpb24gc2V0dGluZ3MuQ2hvb3NlIHdoYXQgdG8gc3luYyQxIHJlcXVpcmVzIHlvdSB0byBlbmNyeXB0IHlvdXIgZGF0YSB1c2luZyBlaXRoZXIgeW91ciBHb29nbGUgcGFzc3dvcmQgb3IgeW91ciBvd24gcGFzc3BocmFzZS5Zb3UgYXJlIGN1cnJlbnRseSB1c2luZyBhIHBhc3NwaHJhc2UuICBJZiB5b3UgaGF2ZSBmb3Jnb3R0ZW4geW91ciBwYXNzcGhyYXNlLCB5b3UgY2FuIHJlc2V0IHN5bmMgdG8gY2xlYXIgeW91ciBkYXRhIGZyb20gR29vZ2xlJ3Mgc2VydmVycyB1c2luZyB0aGUgR29vZ2xlIERhc2hib2FyZC5Gb3IgYWRkZWQgc2VjdXJpdHksICQxIHdpbGwgZW5jcnlwdCB5b3VyIGRhdGEuQWxsIGRhdGEgaXMgZW5jcnlwdGVkIHdpdGggeW91ciBzeW5jIHBhc3NwaHJhc2VBbGwgZGF0YSB3YXMgZW5jcnlwdGVkIHdpdGggeW91ciBzeW5jIHBhc3NwaHJhc2Ugb24KICAgICAgICAgICQxQWxsIGRhdGEgd2FzIGVuY3J5cHRlZCB3aXRoIHlvdXIgR29vZ2xlIHBhc3N3b3JkIGFzIG9mCiAgICAgICAgICAkMUNvbnRyb2wgaG93IEdvb2dsZSB1c2VzIHlvdXIgYnJvd3NpbmcgaGlzdG9yeSB0byBwZXJzb25hbGl6ZSBTZWFyY2gsIGFkcywgYW5kIG90aGVyIEdvb2dsZSBzZXJ2aWNlcyBmcm9tIDxhIGlkPSJhY3Rpdml0eS1jb250cm9scyIgaHJlZj0iJDEiIHRhcmdldD0iX2JsYW5rIj5Hb29nbGUgQWN0aXZpdHkgQ29udHJvbHM8L2E+LlRoZSBwYXNzcGhyYXNlIHlvdSBlbnRlcmVkIGlzIGluY29ycmVjdC5JZiB5b3UndmUgZm9yZ290dGVuIHlvdXIgcGFzc3BocmFzZSwgc3RvcCBhbmQgcmVzZXQgU3luYyB2aWEgPGEgaHJlZj0iJDEiIHRhcmdldD0iX2JsYW5rIj5Hb29nbGUgRGFzaGJvYXJkPC9hPi5TaWduIGluIHdpdGggeW91ciBHb29nbGUgQWNjb3VudFN1Y2Nlc3MhU2lnbiBpbiB0byBnZXQgeW91ciBib29rbWFya3MsIGhpc3RvcnksIGFuZCBzZXR0aW5ncyBvbiBhbGwgeW91ciBkZXZpY2VzLlNraXAgZm9yIG5vd05vdCBzaWduZWQgaW4gdG8gJDEoWW91J3JlIG1pc3Npbmcgb3V04oCUJDEpc2lnbiBpbiQxIHdhbnRzIHRvIHNlbmQgeW91IG5vdGlmaWNhdGlvbnMuU2hvdyBub3RpZmljYXRpb25zU2VuZCBtZXNzYWdlJkZpbGUmVmlld0hpJnN0b3J5JlRvb2xzJkhlbHBSZW9wZW4gQ2xvc2VkIFRhYk9wZW4gJkZpbGXigKZPcGVuICZMb2NhdGlvbuKApkNsb3NlIFdpbiZkb3cmQ2xvc2UgVGFiJlN0b3AmUmVsb2FkIFRoaXMgUGFnZUEmY3R1YWwgU2l6ZVpvb20gJkluWm9vbSAmT3V0TW9zdCBWaXNpdGVkUmVjZW50bHkgQ2xvc2VkUmVzdG9yZSBBbGwgVGFicyQxIHdhbnRzIHRvIHVzZSB5b3VyIGNvbXB1dGVyJ3MgbG9jYXRpb24uS25vdyB5b3VyIGxvY2F0aW9uVGhpcyBwYWdlIGNvbnRhaW5zIGVsZW1lbnRzIGZyb20gdGhlIGZvbGxvd2luZyBzaXRlcyB0aGF0IGFyZSB0cmFja2luZyB5b3VyIGxvY2F0aW9uOlRoZSBmb2xsb3dpbmcgc2l0ZXMgaGF2ZSBiZWVuIGJsb2NrZWQgZnJvbSB0cmFja2luZyB5b3VyIGxvY2F0aW9uIG9uIHRoaXMgcGFnZTpTZXR0aW5ncyB3aWxsIGJlIGNsZWFyZWQgb24gbmV4dCByZWxvYWQuQ2xlYXIgdGhlc2Ugc2V0dGluZ3MgZm9yIGZ1dHVyZSB2aXNpdHNNYW5hZ2UgbG9jYXRpb24gc2V0dGluZ3PigKZUaGlzIHBhZ2UgaXMgdHJhY2tpbmcgeW91ciBsb2NhdGlvbi5UaGlzIHBhZ2UgaGFzIGJlZW4gYmxvY2tlZCBmcm9tIHRyYWNraW5nIHlvdXIgbG9jYXRpb24uJDEgd2FudHMgdG8gZ2V0IGZ1bGwgY29udHJvbCBvZiB5b3VyIE1JREkgZGV2aWNlcy5Vc2UgeW91ciBNSURJIGRldmljZXNUaGlzIHBhZ2UgaGFzIGZ1bGwgY29udHJvbCBvZiBNSURJIGRldmljZXMuVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBoYXZpbmcgZnVsbCBjb250cm9sIG9mIE1JREkgZGV2aWNlcy5UaGlzIHNpdGUgaGFzIGZ1bGwgY29udHJvbCBvZiBNSURJIGRldmljZXMuVGhpcyBzaXRlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBoYXZpbmcgZnVsbCBjb250cm9sIG9mIE1JREkgZGV2aWNlcy5NYW5hZ2UgTUlESSBzZXR0aW5nc+KAplRoaXMgcGFnZSB3YW50cyB0byBpbnN0YWxsIGEgc2VydmljZSBoYW5kbGVyLk1hbmFnZSBtZWRpYSBzZXR0aW5nc+KApk1hbmFnZSBtaWNyb3Bob25lIHNldHRpbmdz4oCmTWFuYWdlIGNhbWVyYSBzZXR0aW5nc+KAplRoaXMgcGFnZSBpcyBhY2Nlc3NpbmcgeW91ciBjYW1lcmEgYW5kIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBhY2Nlc3NpbmcgeW91ciBjYW1lcmEgYW5kIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGlzIGFjY2Vzc2luZyB5b3VyIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGlzIGFjY2Vzc2luZyB5b3VyIGNhbWVyYS5UaGlzIHBhZ2UgaGFzIGJlZW4gYmxvY2tlZCBmcm9tIGFjY2Vzc2luZyB5b3VyIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBhY2Nlc3NpbmcgeW91ciBjYW1lcmEuQ2FtZXJhIGFuZCBtaWNyb3Bob25lIGFsbG93ZWRDYW1lcmEgYW5kIG1pY3JvcGhvbmUgYmxvY2tlZE1pY3JvcGhvbmUgYWxsb3dlZENhbWVyYSBhbGxvd2VkTWljcm9waG9uZSBibG9ja2VkQ2FtZXJhIGJsb2NrZWRUaGlzIHBhZ2UgbWF5IG5lZWQgdG8gYmUgcmVsb2FkZWQgYmVmb3JlIHRoZSBuZXcgc2V0dGluZ3MgdGFrZSBlZmZlY3QuUGFzc3dvcmQgc2F2ZWRWaWV3IGFuZCBtYW5hZ2Ugc2F2ZWQgcGFzc3dvcmRzIGF0ICQxR29vZ2xlIHNhdmVkIHBhc3N3b3Jkc1NhdmVkIHBhc3N3b3JkcyBmb3IgdGhpcyBzaXRlOk5vIHBhc3N3b3JkcyBzYXZlZC5SZXN0b3JlIGRlbGV0ZWQgcGFzc3dvcmQgZm9yICQxRGVsZXRlIHBhc3N3b3JkIGZvciAkMVNpZ25pbmcgaW4gYXNTaWduIGluIGVhc2lseSBhY3Jvc3MgZGV2aWNlc1NpZ24gaW4gZWFzaWx5JDEgYXV0b21hdGljYWxseSBzaWducyB5b3UgaW4gdG8gZWxpZ2libGUgc2l0ZXMgYW5kIGFwcHMgd2l0aCBwYXNzd29yZHMgeW91IHNhdmVkLiQxIGF1dG9tYXRpY2FsbHkgc2lnbnMgeW91IGluIHRvIGVsaWdpYmxlIHNpdGVzIHdpdGggcGFzc3dvcmRzIHlvdSBzYXZlZC5UdXJuIG9mZkFjY2VzcyB0byBsb2NhbCBmaWxlcyBvbiB5b3VyIG1hY2hpbmUgaXMgZGlzYWJsZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yLlByb3h5IENvbmZpZ3VyYXRpb24gSGVscDxwPldoZW4gcnVubmluZyAkMSB1bmRlciBhIHN1cHBvcnRlZCBkZXNrdG9wIGVudmlyb25tZW50LCB0aGUgc3lzdGVtIHByb3h5IHNldHRpbmdzIHdpbGwgYmUgdXNlZC4gIEhvd2V2ZXIsIGVpdGhlciB5b3VyIHN5c3RlbSBpcyBub3Qgc3VwcG9ydGVkIG9yIHRoZXJlIHdhcyBhIHByb2JsZW0gbGF1bmNoaW5nIHlvdXIgc3lzdGVtIGNvbmZpZ3VyYXRpb24uPC9wPgoKICAgICAgICAgIDxwPkJ1dCB5b3UgY2FuIHN0aWxsIGNvbmZpZ3VyZSB2aWEgdGhlIGNvbW1hbmQgbGluZS4gIFBsZWFzZSBzZWUgPGNvZGU+bWFuICQyPC9jb2RlPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBmbGFncyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLjwvcD5JbWFnZSBGaWxlc0F1ZGlvIEZpbGVzVmlkZW8gRmlsZXNDdXN0b20gRmlsZXNZb3UgaGF2ZSBnb25lIGZ1bGwgc2NyZWVuLiIkMSIgdHJpZ2dlcmVkIGZ1bGwgc2NyZWVuLkFuIGV4dGVuc2lvbiB0cmlnZ2VyZWQgZnVsbCBzY3JlZW4uJDEgaXMgbm93IGZ1bGwgc2NyZWVuLlRoaXMgcGFnZSBpcyBub3cgZnVsbCBzY3JlZW4uJDEgaXMgbm93IGZ1bGwgc2NyZWVuIGFuZCBoYXMgZGlzYWJsZWQgeW91ciBtb3VzZSBjdXJzb3IuVGhpcyBwYWdlIGlzIG5vdyBmdWxsIHNjcmVlbiBhbmQgaGFzIGRpc2FibGVkIHlvdXIgbW91c2UgY3Vyc29yLiQxIGhhcyBkaXNhYmxlZCB5b3VyIG1vdXNlIGN1cnNvci5UaGlzIHBhZ2UgaGFzIGRpc2FibGVkIHlvdXIgbW91c2UgY3Vyc29yLlByZXNzIHwkMXwgdG8gZXhpdCBmdWxsIHNjcmVlblByZXNzIHwkMXwgdG8gc2hvdyB5b3VyIGN1cnNvclByZXNzIGFuZCBob2xkIHwkMXwgdG8gZXhpdCBmdWxsIHNjcmVlblByZXNzIHwkMXwgdG8gZ28gYmFja1ByZXNzIHwkMXwgdG8gZ28gZm9yd2FyZGVtYWlsd2ViIGNhbGVuZGFyQWxsb3cgJDEgdG8gb3BlbiBhbGwgJDIgbGlua3M/QWxsb3cgJDEgdG8gb3BlbiBhbGwgJDIgbGlua3MgaW5zdGVhZCBvZiAkMz9PcGVuICQxIGxpbmtzT3BlbiAkMSBsaW5rcyBpbnN0ZWFkIG9mICQySWdub3JlJDEgd2FudHMgdG8gdXNlIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lLiQxIHdhbnRzIHRvIHVzZSB5b3VyIG1pY3JvcGhvbmUuJDEgd2FudHMgdG8gdXNlIHlvdXIgY2FtZXJhLiQxIHdhbnRzIHRvIHNoYXJlIHlvdXIgc2NyZWVuLlVzZSB5b3VyIGNhbWVyYSBhbmQgbWljcm9waG9uZSQxIHdhbnRzIHRvIHBlcm1hbmVudGx5IHN0b3JlIGRhdGEgb24geW91ciBsb2NhbCBjb21wdXRlci4kMSB3YW50cyB0byBwZXJtYW5lbnRseSBzdG9yZSBsYXJnZSBkYXRhIG9uIHlvdXIgbG9jYWwgY29tcHV0ZXIuU3RvcmUgZmlsZXMgb24gdGhpcyBkZXZpY2VOYW1lOkNob29zZSBhIHBpY3R1cmUgYW5kIG5hbWVSZW1vdmUgcGVyc29uP0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgIiQxIiBhbmQgYWxsIGFzc29jaWF0ZWQgQ2hyb21lIGRhdGEgZnJvbSB0aGlzIGNvbXB1dGVyPyBUaGlzIGNhbm5vdCBiZSB1bmRvbmUuU2V0dGluZ3MgYW5kIGJyb3dzaW5nIGhpc3RvcnkgZm9yIHRoaXMgc3VwZXJ2aXNlZCB1c2VyIG1heSBzdGlsbCBiZSB2aXNpYmxlIGJ5IHRoZSBtYW5hZ2VyIGF0IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+JDI8L2E+LkNsZWFyIGRhdGEgYW5kIGRpc2Nvbm5lY3QkMSAoY3VycmVudCkoU3VwZXJ2aXNlZClZb3UgYXJlIGN1cnJlbnRseSB0aGUgb25seSAkMSB1c2VyLkFkZCBwZXJzb25UaGUgbmV3IHVzZXIgY291bGRuJ3QgYmUgY3JlYXRlZC4gUGxlYXNlIGNoZWNrIHlvdXIgaGFyZCBkcml2ZSBzcGFjZSBhbmQgcGVybWlzc2lvbnMgYW5kIHRyeSBhZ2Fpbi5UaGUgbmV3IHN1cGVydmlzZWQgdXNlciBjb3VsZG4ndCBiZSBjcmVhdGVkLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2FpbiBsYXRlci5UaGUgbmV3IHN1cGVydmlzZWQgdXNlciBjb3VsZG4ndCBiZSBjcmVhdGVkLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSdyZSBzaWduZWQgaW4gcHJvcGVybHkgYW5kIHRyeSBhZ2Fpbi5TZWxlY3QgYW4gYWNjb3VudCB0byBtYW5hZ2UgdGhlIHN1cGVydmlzZWQgdXNlci5Mb29rcyBsaWtlIHlvdSdyZSBhbHJlYWR5IG1hbmFnaW5nIGEgdXNlciBieSB0aGF0IG5hbWUuIERpZCB5b3Ugd2FudCB0byA8YSBpcz0iYWN0aW9uLWxpbmsiIGlkPSJzdXBlcnZpc2VkLXVzZXItaW1wb3J0LWV4aXN0aW5nIj5pbXBvcnQgJDE8L2E+IHRvIHRoaXMgZGV2aWNlP0xvb2tzIGxpa2UgeW91IGFscmVhZHkgaGF2ZSBhIHN1cGVydmlzZWQgdXNlciB3aXRoIHRoaXMgbmFtZS5Db250cm9sIGFuZCB2aWV3IHRoZSB3ZWJzaXRlcyB0aGlzIHBlcnNvbiB2aXNpdHMgZnJvbSAkMS5DcmVhdGUgYSBkZXNrdG9wIHNob3J0Y3V0IGZvciB0aGlzIHVzZXJTdXBlcnZpc2UgdGhpcyBwZXJzb24gdG8gY29udHJvbCBhbmQgdmlldyB0aGUgd2Vic2l0ZXMgdGhleSB2aXNpdCBmcm9tIHlvdXIgR29vZ2xlIEFjY291bnQuVG8gc3VwZXJ2aXNlIHRoaXMgcGVyc29uLCA8YSBpZD0ic2lnbi1pbi10by1jaHJvbWUiIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL2Nocm9tZS9hbnN3ZXIvMTg1Mjc3Ij5zaWduIGluIHRvIENocm9tZTwvYT4uU2VsZWN0IGFuIGFjY291bnRDb250cm9sIGFuZCB2aWV3IHRoZSB3ZWJzaXRlcyB0aGlzIHBlcnNvbiB2aXNpdHMgZnJvbSAkMS4KICAgIFlvdXIgYWNjb3VudCBzaWduLWluIGRldGFpbHMgYXJlIG91dCBvZiBkYXRlLllvdXIgYWNjb3VudCBkZXRhaWxzIGFyZSBvdXQgb2YgZGF0ZS4gPGEgaXM9ImFjdGlvbi1saW5rIiBpZD0icmVhdXRoIiBkYXRhLXVzZXItZW1haWw9IiQxIj5TaWduIGluIGFnYWluPC9hPi5Zb3VyIGFkbWluaXN0cmF0b3IgZG9lc27igJl0IGFsbG93IHlvdSB0byBjcmVhdGUgc3VwZXJ2aXNlZCB1c2Vycy5DcmVhdGluZyB5b3VyIHN1cGVydmlzZWQgdXNlci4gVGhpcyBtYXkgdGFrZSBhIGZldyBtb21lbnRzLjxhIGlzPSJhY3Rpb24tbGluayIgaWQ9ImNyZWF0ZS1wcm9maWxlLXN1cGVydmlzZWQtc2lnbi1pbi1saW5rIj5TaWduIGluPC9hPiB0byBjb250cm9sIGFuZCB2aWV3IHRoZSB3ZWJzaXRlcyB0aGlzIHBlcnNvbiB2aXNpdHMuQWRkIGRlc2t0b3Agc2hvcnRjdXRSZW1vdmUgZGVza3RvcCBzaG9ydGN1dFdoYXQgaXMgYSBzdXBlcnZpc2VkIHVzZXI/QSBzdXBlcnZpc2VkIHVzZXIgY2FuIGV4cGxvcmUgdGhlIHdlYiB3aXRoIHlvdXIgZ3VpZGFuY2UuIEFzIHRoZSBtYW5hZ2VyIG9mIGEgc3VwZXJ2aXNlZCB1c2VyIGluIENocm9tZSwgeW91IGNhbjoKCsKg4oCiwqBhbGxvdyBvciBwcm9oaWJpdCBjZXJ0YWluIHdlYnNpdGVzLArCoOKAosKgcmV2aWV3IHdlYnNpdGVzIHRoZSBzdXBlcnZpc2VkIHVzZXIgaGFzIHZpc2l0ZWQsIGFuZArCoOKAosKgbWFuYWdlIG90aGVyIHNldHRpbmdzLgoKQ3JlYXRpbmcgYSBzdXBlcnZpc2VkIHVzZXIgZG9lcyBub3QgY3JlYXRlIGEgR29vZ2xlIEFjY291bnQsIGFuZCB0aGVpciBib29rbWFya3MsIGJyb3dzaW5nIGhpc3RvcnksIGFuZCBvdGhlciBwcmVmZXJlbmNlcyB3aWxsIG5vdCBmb2xsb3cgdGhlbSB0byBvdGhlciBkZXZpY2VzIHdpdGggQ2hyb21lIFN5bmMuIEFmdGVyIHlvdSBjcmVhdGUgYSBuZXcgc3VwZXJ2aXNlZCB1c2VyLCB5b3UgY2FuIG1hbmFnZSB0aGVpciBzZXR0aW5ncyBhdCBhbnkgdGltZSwgZnJvbSBhbnkgZGV2aWNlLCBhdCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDEiPiQyPC9hPi4KCkZvciBtb3JlIGluZm9ybWF0aW9uLCB2aXNpdCBvdXIgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL2Nocm9tZS8/cD11aV9zdXBlcnZpc2VkX3VzZXJzJmhsPWVuIj5IZWxwIENlbnRlcjwvYT4uJDEgaXMgbm93IGEgc3VwZXJ2aXNlZCB1c2VySW1wb3J0IGFuIGV4aXN0aW5nIHN1cGVydmlzZWQgdXNlckNob29zZSBhIHN1cGVydmlzZWQgdXNlciB0byBhZGQgdG8gdGhpcyBkZXZpY2UuVGhlcmUgYXJlIG5vIHN1cGVydmlzZWQgdXNlcnMgdG8gYWRkIHRvIHRoaXMgZGV2aWNlLkNyZWF0ZSBhIG5ldyBzdXBlcnZpc2VkIHVzZXJJbXBvcnQgc3VwZXJ2aXNlZCB1c2VyKGFscmVhZHkgb24gdGhpcyBkZXZpY2UpVGhlIHN1cGVydmlzZWQgdXNlciBjb3VsZG4ndCBiZSBpbXBvcnRlZC4gUGxlYXNlIGNoZWNrIHlvdXIgaGFyZCBkcml2ZSBzcGFjZSBhbmQgcGVybWlzc2lvbnMgYW5kIHRyeSBhZ2Fpbi5UaGUgc3VwZXJ2aXNlZCB1c2VyIGNvdWxkbid0IGJlIGltcG9ydGVkLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2FpbiBsYXRlci5Mb29rcyBsaWtlIHRoZXJlJ3MgYSBwcm9ibGVtIHdpdGggeW91ciBjcmVkZW50aWFscy4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UncmUgc2lnbmVkIGluIHByb3Blcmx5IGFuZCB0cnkgYWdhaW4uUmVtb3ZlIHRoaXMgcGVyc29uQWRkIHN1cGVydmlzZWQgcGVyc29uQnJvd3NlIGFzIEd1ZXN0TW9yZSBPcHRpb25zQ3VycmVudGx5IHNpZ25lZCBpblNvcnJ5LCB5b3VyIHBhc3N3b3JkIGNvdWxkIG5vdCBiZSB2ZXJpZmllZC4gUGxlYXNlIHRyeSBhZ2Fpbi5Tb3JyeSwgeW91ciBwYXNzd29yZCBjb3VsZCBub3QgYmUgdmVyaWZpZWQgYmVjYXVzZSB5b3UgYXJlIG9mZmxpbmUuU2lnbmluZyBpblBhc3N3b3JkIGZvciAkMU9wdGlvbnMgbWVudSBmb3IgJDFSZW1vdmUgdGhpcyB1c2VyQWxsIGZpbGVzIGFuZCBsb2NhbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3VwZXJ2aXNlZCB1c2VyIHdpbGwgYmUgcGVybWFuZW50bHkgZGVsZXRlZCBvbmNlIHRoaXMgc3VwZXJ2aXNlZCB1c2VyIGlzIHJlbW92ZWQuIFZpc2l0ZWQgd2Vic2l0ZXMgYW5kIHNldHRpbmdzIGZvciB0aGlzIHN1cGVydmlzZWQgdXNlciBtYXkgc3RpbGwgYmUgdmlzaWJsZSBieSB0aGUgbWFuYWdlciBhdCAkMS5BbGwgZmlsZXMgYW5kIGxvY2FsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdXNlciB3aWxsIGJlIHBlcm1hbmVudGx5IGRlbGV0ZWQgb25jZSB0aGlzIHVzZXIgaXMgcmVtb3ZlZC4gJDEgY2FuIHN0aWxsIHNpZ24gaW4gbGF0ZXIuUGxlYXNlIHVubG9jayB5b3VyIHByb2ZpbGUgYmVmb3JlIGJyb3dzaW5nIGFzIGEgZ3Vlc3QuUGxlYXNlIHVubG9jayB5b3VyIHByb2ZpbGUgYmVmb3JlIHJlbW92aW5nIGEgcGVyc29uLlBsZWFzZSB1bmxvY2sgeW91ciBwcm9maWxlIGJlZm9yZSBhZGRpbmcgYSBwZXJzb24uVG8gdXNlIENocm9tZSwgcGxlYXNlIHNpZ24gaW5UaGlzIHdpbGwgcGVybWFuZW50bHkgZGVsZXRlIHlvdXIgYnJvd3NpbmcgZGF0YSBmcm9tIHRoaXMgZGV2aWNlLuKApk5leHRTaGFyZSB3aXRoIGd1ZXN0c0FkZCBmYW1pbHkgYW5kIGZyaWVuZHNZb3UncmUgYWxtb3N0IGRvbmUhRG9uJ3Qgc2VlIHlvdXIgbmFtZT9Zb3UgaGF2ZSBIaWdoIENvbnRyYXN0IG1vZGUgZW5hYmxlZC4gV291bGQgeW91IGxpa2UgdG8gaW5zdGFsbCBvdXIgSGlnaCBDb250cmFzdCBleHRlbnNpb24gYW5kIGEgZGFyayB0aGVtZT9IaWdoIENvbnRyYXN0IEV4dGVuc2lvbkRhcmsgVGhlbWVNZWRpYS1GaWxlIFBlcm1pc3Npb25zIGZvciAiJDEiIiQxIiBjYW4gcmVhZCBhbmQgd3JpdGUgaW1hZ2VzLCB2aWRlbywgYW5kIHNvdW5kIGZpbGVzIGluIHRoZSBjaGVja2VkIGxvY2F0aW9ucy4iJDEiIGNhbiByZWFkIGFuZCBkZWxldGUgaW1hZ2VzLCB2aWRlbywgYW5kIHNvdW5kIGZpbGVzIGluIHRoZSBjaGVja2VkIGxvY2F0aW9ucy4iJDEiIGNhbiByZWFkIGltYWdlcywgdmlkZW8sIGFuZCBzb3VuZCBmaWxlcyBpbiB0aGUgY2hlY2tlZCBsb2NhdGlvbnMuU3VnZ2VzdGlvbnNsYXN0IGF0dGFjaGVkIG9uICQxQWRkIGxvY2F0aW9u4oCmQWRkIE1lZGlhIEdhbGxlcnkgYnkgRGlyZWN0b3J5YXR0YWNoZWRub3QgYXR0YWNoZWRQZXJtYW5lbnRseSByZW1vdmUgYWNjZXNzIGZvciBhbGwgYXBwc1JhdHMhICQxIGhpdCBhIHNuYWcuV2ViR0xQZXBwZXIgM0RJZGVudGl0eSBBUEkgVG9rZW4gQ2FjaGVBY2Nlc3MgVG9rZW5FeHRlbnNpb24gTmFtZUV4dGVuc2lvbiBJZFRva2VuIFN0YXR1c05vdCBGb3VuZFRva2VuIFByZXNlbnRFeHBpcmF0aW9uIFRpbWVSZXZva2VBIGZhc3QsIHNpbXBsZSwgYW5kIHNlY3VyZSB3ZWIgYnJvd3NlciwgYnVpbHQgZm9yIHRoZSBtb2Rlcm4gd2ViLkhpZ2ggZGlzayB1c2FnZSBkZXRlY3RlZCQxIGlzIHVzaW5nICQyIE1CIG9mIGRpc2sgc3BhY2UuRG9uJ3Qgd2FybiBhZ2FpbiBmb3IgdGhpcyBhcHBEb24ndCB3YXJuIGFnYWluIGZvciB0aGlzIGV4dGVuc2lvblJlbW92ZSBhcHAkMSB3YW50cyB0byBzaGFyZSB0aGUgY29udGVudHMgb2YgeW91ciBzY3JlZW4uIENob29zZSB3aGF0IHlvdSdkIGxpa2UgdG8gc2hhcmUuJDEgd2FudHMgdG8gc2hhcmUgdGhlIGNvbnRlbnRzIG9mIHlvdXIgc2NyZWVuIHdpdGggJDIuIENob29zZSB3aGF0IHlvdSdkIGxpa2UgdG8gc2hhcmUuU2hhcmUgYXVkaW9Zb3VyIEVudGlyZSBTY3JlZW5BcHBsaWNhdGlvbiBXaW5kb3dFbnRpcmUgc2NyZWVue1NDUkVFTl9JTkRFWCwgcGx1cmFsLCA9MXtTY3JlZW4gI30gb3RoZXJ7U2NyZWVuICN9fXtOVU1fUFJJTlRFUiwgcGx1cmFsLAogICAgICAgICA9MSB7TmV3IHByaW50ZXIgb24geW91ciBuZXR3b3JrfQogICAgICAgICBvdGhlciB7TmV3IHByaW50ZXJzIG9uIHlvdXIgbmV0d29ya319e05VTV9QUklOVEVSLCBwbHVyYWwsCiAgICAgICAgICA9MSB7QWRkIHRoZSBwcmludGVyIHRvIEdvb2dsZSBDbG91ZCBQcmludCBzbyB5b3UgY2FuIHByaW50IGZyb20gYW55d2hlcmUufQogICAgICAgICAgb3RoZXIge0FkZCAjIHByaW50ZXJzIHRvIEdvb2dsZSBDbG91ZCBQcmludCBzbyB5b3UgY2FuIHByaW50IGZyb20gYW55d2hlcmUufX1BZGQgdG8gQ2xvdWQgUHJpbnREZXZpY2VzRG8geW91IHdpc2ggdG8gcmVnaXN0ZXIgdGhlIHByaW50ZXIgJDEgdG8gR29vZ2xlIENsb3VkIFByaW50P0RvIHlvdSB3aXNoIHRvIHJlZ2lzdGVyICQxIHRvIEdvb2dsZSBDbG91ZCBEZXZpY2VzP1VzZXI6Q29uZmlybSByZWdpc3RyYXRpb25BZGRpbmcgcHJpbnRlcuKApkFkZGluZyBkZXZpY2XigKZDb3VsZCBub3QgY29tcGxldGUgcmVnaXN0cmF0aW9uWW91IG11c3QgY29uZmlybSByZWdpc3RyYXRpb24gb24geW91ciBwcmludGVyIHRvIGZpbmlzaCB0aGlzIHByb2Nlc3MgLSBjaGVjayBpdCBub3cuQWRkaW5nIHRoZSBwcmludGVyIHRvIHlvdXIgYWNjb3VudCAtIHRoaXMgbWF5IHRha2UgYSBtb21lbnTigKZBZGRpbmcgdGhlIGRldmljZSB0byB5b3VyIGFjY291bnQgLSB0aGlzIG1heSB0YWtlIGEgbW9tZW504oCmTWFrZSBzdXJlIHRoZSBkZXZpY2UgaXMgc2hvd2luZyB0aGUgc2FtZSBjb2RlLkFuIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHlvdXIgcHJpbnRlciBhbmQgdHJ5IGFnYWluLlByaW50ZXIgb24gR29vZ2xlIENsb3VkIFByaW50RGV2aWNlIG9uIEdvb2dsZSBDbG91ZCBEZXZpY2VzTm8gb3RoZXIgYXZhaWxhYmxlIGRldmljZXMuT25lIG90aGVyIGF2YWlsYWJsZSBkZXZpY2UuJDEgb3RoZXIgYXZhaWxhYmxlIGRldmljZXMuTG9hZGluZ0FkZCBEZXZpY2VzTG9va3MgbGlrZSB0aGVyZSBhcmUgbm8gZGV2aWNlcyBhdmFpbGFibGUgdG8gcmVnaXN0ZXIgb24gdGhlIG5ldHdvcmsuIElmIHlvdXIgZGV2aWNlIGlzIG9uIGFuZCBjb25uZWN0ZWQgdG8gdGhlIGludGVybmV0LCB0cnkgcmVnaXN0ZXJpbmcgaXQgdXNpbmcgaW5zdHJ1Y3Rpb25zIGluIGl0cyBpbnN0cnVjdGlvbiBtYW51YWwuQ291bGQgbm90IGxvYWQgZGV2aWNlcy5Zb3UgbmVlZCB0byBzaWduIGluIHRvIENocm9tZSB0byBzZWUgeW91ciBkZXZpY2VzWW91IG5lZWQgdG8gc2lnbiBpbiB0byBDaHJvbWUgdG8gcmVnaXN0ZXIgbmV3IGRldmljZXNOZXcgZGV2aWNlc015IGRldmljZXNZb3UgY2FuIGFkZCBjbGFzc2ljIHByaW50ZXJzIGNvbm5lY3RlZCB0byB5b3VyIGNvbXB1dGVyIHRvICQxLkNsYXNzaWMgcHJpbnRlcnNEb24ndCBzaG93IHRoaXMgYWdhaW5QcmludGVyIHJlZ2lzdHJhdGlvbiBoYXMgYmVlbiBjYW5jZWxlZC5QcmludGVyIHJlZ2lzdHJhdGlvbiBoYXMgdGltZWQgb3V0LiBJbiBvcmRlciB0byByZWdpc3RlciBhIHByaW50ZXIsIHlvdSBtdXN0IGNvbmZpcm0gcmVnaXN0cmF0aW9uIG9uIHRoZSBwcmludGVyLlRoaXMgdGFiIGlzIHVzaW5nIHlvdXIgY2FtZXJhIG9yIG1pY3JvcGhvbmUuVGhpcyB0YWIncyBjb250ZW50IGlzIGJlaW5nIHNoYXJlZC5UaGlzIHRhYiBpcyBwbGF5aW5nIGF1ZGlvLlRoaXMgdGFiJ3MgYXVkaW8gaXMgYmVpbmcgbXV0ZWQuVGhpcyB0YWIgaXMgY29ubmVjdGVkIHRvIGEgQmx1ZXRvb3RoIERldmljZS5UaGlzIHRhYiBpcyBjb25uZWN0ZWQgdG8gYSBVU0IgZGV2aWNlLiQxIC0gQ2FtZXJhIG9yIG1pY3JvcGhvbmUgcmVjb3JkaW5nJDEgLSBUYWIgY29udGVudCBzaGFyZWQkMSAtIEF1ZGlvIHBsYXlpbmckMSAtIEF1ZGlvIG11dGVkJDEgLSBCbHVldG9vdGggZGV2aWNlIGNvbm5lY3RlZCQxIC0gVVNCIGRldmljZSBjb25uZWN0ZWQkMSAtIE5ldHdvcmsgZXJyb3IkMSAtIENyYXNoZWRRdWl0VW5sb2NrIFByb2ZpbGUgYW5kIFJlbGF1bmNoUHVzaCBNZXNzYWdlc0FsbG93IGFsbCBzaXRlcyB0byBzZW5kIGJhY2tncm91bmQgcHVzaCBtZXNzYWdlc0FzayBtZSB3aGVuIGEgc2l0ZSB3YW50cyB0byBzZW5kIG1lIHB1c2ggbWVzc2FnZXMgKHJlY29tbWVuZGVkKURvIG5vdCBhbGxvdyBhbnkgc2l0ZXMgdG8gc2VuZCBwdXNoIG1lc3NhZ2VzVGhpcyBzaXRlIGhhcyBiZWVuIHVwZGF0ZWQgaW4gdGhlIGJhY2tncm91bmQuQXV0b21hdGljYWxseSB1bmxvY2sgeW91ciAkMVRyeSBTbWFydCBMb2NrIHRvIHVubG9jayB5b3VyICQxIHdpdGhvdXQgYSBwYXNzd29yZCB3aGVuIHlvdXIgcGhvbmUgaXMgbmVhcmJ5LlN0YXJ0IHNldHVwU21hcnQgTG9jayBpcyB0dXJuZWQgb25OZXh0IHRpbWUsIHlvdXIgcGhvbmUgd2lsbCB1bmxvY2sgeW91ciAkMS4gVHVybiBvZmYgU21hcnQgTG9jayBpbiBTZXR0aW5ncy5DaGFuZ2Ugc2V0dGluZ3NTbWFydCBMb2NrIHBob25lIGNoYW5nZWROZXh0IHRpbWUsIGEgbmV3IHBob25lIHdpbGwgdW5sb2NrIHRoaXMgJDEuIFR1cm4gb2ZmIFNtYXJ0IExvY2sgaW4gU2V0dGluZ3MuVXBkYXRlIG5vd1Bob25lIGNoYW5nZSB1cGRhdGVkWW91ciAkMSBjYW4gbm93IHVubG9jayB0aGlzICQyIHRvby5TZXQgdXAgU21hcnQgTG9jayBmb3IgeW91ciAkMU1ha2Ugc3VyZSB5b3VyIHBob25lIGlzIG5lYXJieS4gVG8gZmluZCB5b3VyIHBob25lLCBCbHVldG9vdGggd2lsbCBiZSB0dXJuZWQgb24gZm9yIGFsbCBkZXZpY2VzIHRoYXQgaGF2ZSB5b3VyIGFjY291bnQuIDxhPkxlYXJuIG1vcmU8L2E+RmluZCB5b3VyIHBob25lRmluZGluZyB5b3VyIHBob25lSG93IHRoaXMgaXMgc2VjdXJlU2V0IGEgc2NyZWVuIGxvY2sgZm9yIHNhZmV0eVRoZSBwaG9uZSB5b3UgdXNlZCB0byB1bmxvY2sgeW91ciAkMSBuZWVkcyBhIHNjcmVlbiBsb2NrIGZvciBzZWN1cml0eS4gVXN1YWxseSwgdGhhdOKAmXMgYSBQSU4sIHBhdHRlcm4sIG9yIHBhc3N3b3JkLiBBbHJlYWR5IGhhdmUgYSBzY3JlZW4gbG9jaz8gU2VsZWN0IENoZWNrIGFnYWluIHRvIHZlcmlmeSBhbmQgY29udGludWUgc2V0dXAuU2V0IGEgU2NyZWVuIExvY2tDaGVjayBhZ2FpbkNob29zZSBhIHBob25lIHRvIHVubG9jayB5b3VyICQxWW914oCZbGwgZ2V0IGEgbm90aWZpY2F0aW9uIG9uIHRoaXMgcGhvbmUgc28ga2VlcCB0aGUgcGhvbmUgbmVhcmJ5LlVzZSB0aGlzIHBob25lJDFTaG93IGFub3RoZXIgcGhvbmVSZXN0YXJ0U2V0IHVwIFNtYXJ0IExvY2sgZm9yIEFuZHJvaWRVcGRhdGUgeW91ciBwaG9uZSdzIHNjcmVlbiBsb2NrIHNvIGl0IHR1cm5zIG9mZiB3aGVuIHlvdSdyZSBuZWFyYnkuIFlvdSdsbCB1bmxvY2sgdGhlIHBob25lIGZhc3RlciwgYW5kIGVuam95IGEgYmV0dGVyIFNtYXJ0IExvY2sgZXhwZXJpZW5jZSBvbiB5b3VyICQxLlNtYXJ0IExvY2sgaXMgYWxsIHNldFlvdXIgcGhvbmUgYWxzbyB1bmxvY2tzIHlvdXIgb3RoZXIgJDFzIGJlY2F1c2UgdGhleSBhcmUgYXV0b21hdGljYWxseSBzeW5jZWQuVHJ5IFNtYXJ0IExvY2tDYW7igJl0IGZpbmQgeW91ciBwaG9uZS4gTWFrZSBzdXJlIHlvdXIgJDEncyBCbHVldG9vdGggaXMgdHVybmVkIG9uLiA8YT5MZWFybiBtb3JlPC9hPkNhbuKAmXQgZmluZCB5b3VyIHBob25lLiBNYWtlIHN1cmUgeW91ciAkMSBpcyBjb25uZWN0ZWQgdG8gV2ktRmkgb3IgYSBtb2JpbGUgbmV0d29yay4gPGE+TGVhcm4gbW9yZTwvYT5Gb3VuZCB5b3VyICQxLiBCdXQgU21hcnQgTG9jayBvbmx5IHdvcmtzIG9uIGRldmljZXMgd2l0aCBBbmRyb2lkIDUuMCBhbmQgdXAuIDxhPkxlYXJuIG1vcmU8L2E+Rm91bmQgeW91ciBwaG9uZS4gQnV0IFNtYXJ0IExvY2sgb25seSB3b3JrcyBvbiBkZXZpY2VzIHdpdGggQW5kcm9pZCA1LjAgYW5kIHVwLiA8YT5MZWFybiBtb3JlPC9hPkNhbuKAmXQgZmluZCB5b3VyIHBob25lLiBNYWtlIHN1cmUgeW914oCZcmUgdXNpbmcgYSBjb21wYXRpYmxlIEFuZHJvaWQgcGhvbmUgdGhhdOKAmXMgdHVybmVkIG9uIGFuZCBoYW5keS4gPGE+TGVhcm4gbW9yZTwvYT5TbWFydCBMb2NrIGlzIGN1cnJlbnRseSB1bmF2YWlsYWJsZS4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci5DYW4ndCBjb25uZWN0IHRvIHlvdXIgcGhvbmUuIE1ha2Ugc3VyZSB5b3XigJlyZSB1c2luZyBhIGNvbXBhdGlibGUgQW5kcm9pZCBwaG9uZSB0aGF0IGlzIHR1cm5lZCBvbiBhbmQgaGFuZHkuIDxhPkxlYXJuIG1vcmU8L2E+Qmx1ZXRvb3RoIGlzIG9mZiBvbiB0aGlzICQxLiBFbnRlciB5b3VyIHBhc3N3b3JkLCBhbmQgdHVybiBvbiBCbHVldG9vdGguQ2Fu4oCZdCBmaW5kIHlvdXIgcGhvbmUuIE1ha2Ugc3VyZSBpdOKAmXMgaGFuZHkgYW5kIEJsdWV0b290aCBpcyB0dXJuZWQgb24uVW5hYmxlIHRvIHVubG9jay4gRW50ZXIgeW91ciBwYXNzd29yZC5Zb3VyIHBob25lIGlzIGxvY2tlZC4gVW5sb2NrIGl0IHRvIGVudGVyLlRvIGtlZXAgeW91ciAkMSBzYWZlLCBTbWFydCBMb2NrIHJlcXVpcmVzIGEgc2NyZWVuIGxvY2sgb24geW91ciBwaG9uZS5CcmluZyB5b3VyIHBob25lIGNsb3NlciB0byB1bmxvY2sgeW91ciAkMS5VbmxvY2sgeW91ciBwaG9uZSBhbmQgYnJpbmcgaXQgY2xvc2VyIHRvIHVubG9jayB5b3VyICQxLldoZW4geW91ciBwaG9uZSBpcyB1bmxvY2tlZCBhbmQgbmVhcmJ5LCBqdXN0IHNlbGVjdCB0byB1bmxvY2suIE90aGVyd2lzZSwgZW50ZXIgeW91ciBwYXNzd29yZCBvciBQSU4uSWYgeW91IGNsaWNrIHRoaXMgaWNvbiwgeW91IHdpbGwgbWFudWFsbHkgbG9jayB0aGlzICQxLiBOZXh0IHRpbWUsIHlvdeKAmWxsIG5lZWQgdG8gdHlwZSB5b3VyIHBhc3N3b3JkIHRvIGVudGVyLkZvciBhZGRlZCBzZWN1cml0eSwgU21hcnQgTG9jayB3aWxsIGFzayB5b3UgdG8gZW50ZXIgeW91ciBwYXNzd29yZCBhZnRlciAyMCBob3Vycy5UbyBzdGFydCBTbWFydCBMb2NrLCBlbnRlciB5b3VyIHBhc3N3b3JkLiBOZXh0IHRpbWUsIHlvdSBjYW4gdXNlIHlvdXIgcGhvbmUgdG8gdW5sb2NrIHlvdXIgJDEuUGxlYXNlIHVwZGF0ZSB5b3VyIHBob25lIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBBbmRyb2lkIHRvIHVubG9jayB0aGlzICQxLllvdXIgJDEgaXMgbG9ja2VkIGZvciBzZWN1cml0eS4gTWFudWFsbHkgZW50ZXIgeW91ciBwYXNzd29yZCB0byBjb250aW51ZS5TbWFydCBMb2NrIHBob25lIGNoYW5nZWQuIEVudGVyIHlvdXIgcGFzc3dvcmQgdG8gdXBkYXRlIFNtYXJ0IExvY2suIE5leHQgdGltZSwgeW91ciBwaG9uZSB3aWxsIHVubG9jayB5b3VyICQxLiBUdXJuIG9mZiBTbWFydCBMb2NrIGluIFNldHRpbmdzLkVudGVyIHlvdXIgcGFzc3dvcmQgdG8gdHVybiBvbiBTbWFydCBMb2NrLiBOZXh0IHRpbWUsIHlvdXIgcGhvbmUgd2lsbCB1bmxvY2sgeW91ciAkMS4gVHVybiBvZmYgU21hcnQgTG9jayBpbiBTZXR0aW5ncy5TbWFydCBMb2NrIGNvdWxkbuKAmXQgdmVyaWZ5IHlvdXIgYWNjb3VudC4gVHlwZSB5b3VyIHBhc3N3b3JkIHRvIGVudGVyLlRvIHNldCB1cCBTbWFydCBMb2NrIGZvciBDaHJvbWVib29rLCBHb29nbGUgbmVlZHMgdG8gbWFrZSBzdXJlIGl04oCZcyB5b3XigJR0eXBlIHlvdXIgcGFzc3dvcmQgdG8gZ2V0IHN0YXJ0ZWQuQ2xpY2sgeW91ciBwaG90b0RldmljZSBMb2dBZGQgYSBxdWVyeSBwYXJhbSBpbiBVUkwgdG8gYXV0by1yZWZyZXNoIHRoZSBwYWdlOiBjaHJvbWU6Ly9kZXZpY2UtbG9nLz9yZWZyZXNoPTxzZWM+UmVmcmVzaFNob3c6VXNlckV2ZW50RGVidWdMb2dpblBvd2VyQmx1ZXRvb3RoVVNCSElERmlsZSBJbmZvRGV0YWlsZWQgVGltZXN0YW1wc1skMV0KICAgICAgICAkMgogICAgICAgICQzRG8geW91IHdhbnQgJDEgdG8gc2F2ZSB5b3VyIHBhc3N3b3JkIGZvciAkMj9EbyB5b3Ugd2FudCAkMSB0byB1cGRhdGUgeW91ciBwYXNzd29yZCBmb3IgJDI/U2F2ZWQgcGFzc3dvcmRzIGZvciAkMTpHbyB0byAkMSB0byBjb25uZWN0LiQxIGRldGVjdGVkJDEgd2FudHMgdG8gcGFpciIkMSIgd2FudHMgdG8gcGFpciQxIHdhbnRzIHRvIGNvbm5lY3QiJDEiIHdhbnRzIHRvIGNvbm5lY3RObyBjb21wYXRpYmxlIGRldmljZXMgZm91bmQuJDEgdG8gYWxsb3cgcGFpcmluZ1R1cm4gb24gQmx1ZXRvb3RoIHdoaWxlIHNjYW5uaW5nIGZvciBkZXZpY2Vz4oCmUmUtc2NhblJlLXNjYW4gQmx1ZXRvb3RoIGRldmljZXNTY2FubmluZ+KAplNjYW5uaW5nIGZvciBCbHVldG9vdGggZGV2aWNlc+KAplBhaXJDb25uZWN0R2V0IGhlbHAkMSQxIG9yICQyUGFpcmVkJDEgLSBQYWlyZWRVbmtub3duIGRldmljZSBmcm9tICQxVW5rbm93biBkZXZpY2UgWyQxOiQyXSQxIGV4dGVuc2lvbiBtYXkgY29sbGVjdCBhbGwgdGhlIHRleHQgeW91IHR5cGUsIGluY2x1ZGluZyBwZXJzb25hbCBkYXRhIGxpa2UgcGFzc3dvcmRzIGFuZCBjcmVkaXQgY2FyZCBudW1iZXJzLiBEbyB5b3Ugd2FudCB0byB1c2UgdGhpcyBleHRlbnNpb24/TmV2ZXIgc2hvdyB0aGlzIGFnYWluLkFsd2F5cyBhbGxvdyBhZHMgb24gdGhpcyBzaXRlQWxsb3cgYWRzIG9uIHRoaXMgc2l0ZUFkcyBibG9ja2VkLkFkcyBibG9ja2VkQ2hyb21lIGJsb2NrZWQgYWRzIG9uIHRoaXMgc2l0ZSBiZWNhdXNlIHRoaXMgc2l0ZSB0ZW5kcyB0byBzaG93IGludHJ1c2l2ZSBhZHMuQWRzIGJsb2NrZWQgb24gdGhpcyBzaXRlUmVkaXJlY3QgYmxvY2tlZCB0byBzaXRlOlJlZGlyZWN0IGJsb2NrZWRSZWRpcmVjdCBibG9ja2VkIG9uIHRoaXMgcGFnZS5Hb3QgaXRUaGUgd2ViIGJyb3dzZXIgYnkgR29vZ2xlLCBmb3IgeW91U2lnbiBpbiB0byBDaHJvbWUgd2l0aCB5b3VyIEdvb2dsZSBBY2NvdW50IHRvIGdldCB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3Mgb24gYWxsIHlvdXIgZGV2aWNlcy5Zb3VyIGRvd25sb2FkcyBhcHBlYXIgaGVyZUNocm9tZSBpcyBiZWluZyBjb250cm9sbGVkIGJ5IGF1dG9tYXRlZCB0ZXN0IHNvZnR3YXJlLlNlZSB0aGUgc2VyaWFsIG51bWJlciBvZiB5b3VyIHNlY3VyaXR5IGtleUFjY2Vzc2luZyB2aWRlbyBpbnB1dEFjY2Vzc2luZyBhdWRpbyBpbnB1dEFjY2Vzc2luZyBhdWRpbyBhbmQgdmlkZW8gaW5wdXRTaGFyaW5nIHNjcmVlblByZXNzIEFwcCBidXR0b24gdG8gZXhpdEluc3RhbGwgb3IgdXBkYXRlIERheWRyZWFtIEtleWJvYXJkIHRvIHVzZSBDaHJvbWUgaW4gVlJUaGlzIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBpbiBWUlNpdGUgaW5mb3JtYXRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiBWUkFsbG93IENocm9tZSB0byByZWNvcmQgYXVkaW8/RVhJVCBWUlRoaXMgcGFnZSBjb250YWlucyBmZWF0dXJlcyBub3QgeWV0IHN1cHBvcnRlZCBpbiBWUi4gRXhpdGluZ+KAplRoaXMgaXMgYW4gZWFybHkgcmVsZWFzZS4gU29tZSBmZWF0dXJlcywgbGlrZSBzZWFyY2ggYW5kIHRleHQgZW50cnksIGFyZSBub3QgeWV0IGF2YWlsYWJsZS5UaGUgcGFnZSBpc24ndCByZXNwb25kaW5nLiBZb3UgY2FuIHdhaXQgZm9yIGl0IG9yIGV4aXQuRXhpdFJ1bm5pbmcgaW4gQ2hyb21lU29ycnksIGRpZG4ndCBjYXRjaCB0aGF0LmVuLVVTNTU3MDI1NTJodHRwczovL2Nocm9tZS5nb29nbGUuY29tL3dlYnN0b3JlP2hsPWVuJmNhdGVnb3J5PXRoZW1laHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS93ZWJzdG9yZT9obD1lbmh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9jaHJvbWUvaW50bC9lbi93ZWxjb21lLmh0bWxodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9zZXR0bWdyX3N0b3JhZ2VfZW5odHRwOi8vd3d3Lm1hY3JvbWVkaWEuY29tL3N1cHBvcnQvZG9jdW1lbnRhdGlvbi9lbi9mbGFzaHBsYXllci9oZWxwL3NldHRpbmdzX21hbmFnZXIwMi5odG1saHR0cDovL3d3dy5tYWNyb21lZGlhLmNvbS9zdXBwb3J0L2RvY3VtZW50YXRpb24vZW4vZmxhc2hwbGF5ZXIvaGVscC9zZXR0aW5nc19tYW5hZ2VyMDYuaHRtbGh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL2Nocm9tZS9hbnN3ZXIvMTE4MTQyMDY1ODFodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9jaHJvbWUvP3A9c2V0dGluZ3NfY2xlYXJfYnJvd3NpbmdfZGF0YWh0dHBzOi8vaGlzdG9yeS5nb29nbGUuY29tL2hpc3RvcnkvP3V0bV9zb3VyY2U9Y2hyb21lX2NiZGh0dHBzOi8vbXlhY3Rpdml0eS5nb29nbGUuY29tL215YWN0aXZpdHkvP3V0bV9zb3VyY2U9Y2hyb21lX25odHRwczovL215YWN0aXZpdHkuZ29vZ2xlLmNvbS9teWFjdGl2aXR5Lz91dG1fc291cmNlPWNocm9tZV9oVGltZXMgTmV3IFJvbWFuTW9ub3NwYWNlQXJpYWxDb21pYyBTYW5zIE1TSW1wYWN0MTYxMzA2R28gdG8KICAgICAgICAgIHRoZSBDaHJvbWl1bSBtZW51ID4KICAgICAgICAgIDxzcGFuIGpzY29udGVudD0ic2V0dGluZ3NUaXRsZSI+PC9zcGFuPgogICAgICAgICAgPgogICAgICAgICAgPHNwYW4ganNjb250ZW50PSJhZHZhbmNlZFRpdGxlIj48L3NwYW4+CiAgICAgICAgICBhbmQgZGVzZWxlY3QgIjxzcGFuIGpzY29udGVudD0ibm9OZXR3b3JrUHJlZGljdGlvblRpdGxlIj48L3NwYW4+LiIKICAgICAgICAgIElmIHRoaXMgZG9lcyBub3QgcmVzb2x2ZSB0aGUgaXNzdWUsIHdlIHJlY29tbWVuZCBzZWxlY3RpbmcgdGhpcyBvcHRpb24KICAgICAgICAgIGFnYWluIGZvciBpbXByb3ZlZCBwZXJmb3JtYW5jZS5BbGxvdyBDaHJvbWl1bSB0byBhY2Nlc3MgdGhlIG5ldHdvcmsgaW4geW91ciBmaXJld2FsbCBvciBhbnRpdmlydXMKICAgICAgICAgIHNldHRpbmdzLkNocm9taXVtIE9TIGhhc27igJl0IGNvbXBsZXRlZCBpdHMgaW5pdGlhbCBzZXR1cC5HbyB0bwogICAgICAgICAgdGhlIENocm9taXVtIG1lbnUgPgogICAgICAgICAgPHNwYW4ganNjb250ZW50PSJzZXR0aW5nc1RpdGxlIj48L3NwYW4+CiAgICAgICAgICA+CiAgICAgICAgICA8c3BhbiBqc2NvbnRlbnQ9ImFkdmFuY2VkVGl0bGUiPjwvc3Bhbj4KICAgICAgICAgID4KICAgICAgICAgIDxzcGFuIGpzY29udGVudD0icHJveHlUaXRsZSI+PC9zcGFuPgogICAgICAgICAgYW5kIG1ha2Ugc3VyZSB5b3VyIGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvICJubyBwcm94eSIgb3IgImRpcmVjdC4iWW91ciBjaGFuZ2VzIHdpbGwgdGFrZSBlZmZlY3QgdGhlIG5leHQgdGltZSB5b3UgcmVsYXVuY2ggQ2hyb21pdW0uQ3Jhc2ggcmVwb3J0aW5nIGlzIG5vdCBhdmFpbGFibGUgaW4gQ2hyb21pdW0uQ2hyb21pdW0gaXMgbWFkZSBwb3NzaWJsZSBieSB0aGUgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQxIj5DaHJvbWl1bTwvYT4gb3BlbiBzb3VyY2UgcHJvamVjdCBhbmQgb3RoZXIgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQyIj5vcGVuIHNvdXJjZSBzb2Z0d2FyZTwvYT4uWW91J3JlIHZpZXdpbmcgYSBzZWN1cmUgQ2hyb21pdW0gcGFnZUNocm9taXVtIHZlcmlmaWVkIHRoYXQgJDEgaXNzdWVkIHRoaXMgd2Vic2l0ZSdzIGNlcnRpZmljYXRlLkNocm9taXVtIGRpZG4ndCBzaHV0IGRvd24gY29ycmVjdGx5LjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KPGgyPlRoaXMgU3BhY2UgSW50ZW50aW9uYWxseSBCbGFuazwvaDI+CjxwPkluIG9mZmljaWFsIGJ1aWxkcyB0aGlzIHNwYWNlIHdpbGwgc2hvdyB0aGUgdGVybXMgb2Ygc2VydmljZS48L3A+CjwvYm9keT4KPC9odG1sPmVuLVVTLGVud2luZG93cy0xMjUyRnJvbSAkMUZyb20gYW4gZW1iZWRkZWQgcGFnZSBhdCAkMUZyb20gdGhpcyBwYWdlRnJvbSBhbiBlbWJlZGRlZCBwYWdlIG9uIHRoaXMgcGFnZVByZXZlbnQgdGhpcyBwYWdlIGZyb20gY3JlYXRpbmcgYWRkaXRpb25hbCBkaWFsb2dzRG8geW91IHdhbnQgdG8gbGVhdmUgdGhpcyBzaXRlP0NoYW5nZXMgeW91IG1hZGUgbWF5IG5vdCBiZSBzYXZlZC5MZWF2ZURvIHlvdSB3YW50IHRvIHJlbG9hZCB0aGlzIHNpdGU/Q2xlYXIgZm9ybVBheW1lbnQgYXV0b2ZpbGxpbmcgZGlzYWJsZWRBdXRvbWF0aWMgY3JlZGl0IGNhcmQgZmlsbGluZyBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoaXMgZm9ybSBkb2VzIG5vdCB1c2UgYSBzZWN1cmUgY29ubmVjdGlvbi5QYXltZW50IG5vdCBzZWN1cmVUbyB1c2UgY2FyZHMgZnJvbSB5b3VyIEdvb2dsZSBBY2NvdW50LCBzaWduIGluIHRvIENocm9tZVJlbW92ZSBmb3JtIHN1Z2dlc3Rpb24gZnJvbSBDaHJvbWl1bT9SZW1vdmUgY3JlZGl0IGNhcmQgZnJvbSBDaHJvbWl1bT9SZW1vdmUgYWRkcmVzcyBmcm9tIENocm9taXVtP0FtZXJpY2FuIEV4cHJlc3NBbWV4RGluZXJzIENsdWJEaXNjb3ZlckVsb0pDQk1hc3RlcmNhcmRNaXJDaGluYSBVbmlvblBheVZpc2FDYXJkLCBTdGF0ZUFyZWFDb3VudHlEZXBhcnRtZW50RGlzdHJpY3RFbWlyYXRlSXNsYW5kUGFyaXNoUHJlZmVjdHVyZVByb3ZpbmNlWklQIGNvZGVQb3N0YWwgY29kZUNocm9taXVtIEF1dG9maWxsIHNldHRpbmdz4oCmU2NhbiBuZXcgY2FyZFVzZSBwYXNzd29yZCBmb3I6TG9naW4gbm90IHNlY3VyZVNob3cgYWxsIHNhdmVkIHBhc3N3b3Jkc0dlbmVyYXRlIGEgc3Ryb25nIHBhc3N3b3Jk4oCmRG8geW91IHdhbnQgQ2hyb21pdW0gdG8gc2F2ZSB0aGlzIGNhcmQ/RG8geW91IHdhbnQgdG8gc2F2ZSB0aGlzIGNhcmQgdG8geW91ciBHb29nbGUgQWNjb3VudD9TYXZlIGNhcmQgdG8gR29vZ2xlP1NhdmUgY2FyZD9QYXkgcXVpY2tseSBvbiBzaXRlcyBhbmQgYXBwcyBhY3Jvc3MgZGV2aWNlcyB1c2luZyBjYXJkcyB5b3UgaGF2ZSBzYXZlZCB3aXRoIEdvb2dsZS5UbyBwYXkgZmFzdGVyIG5leHQgdGltZSwgc2F2ZSB0aGlzIGNhcmQgdG8geW91ciBHb29nbGUgQWNjb3VudC5Db25maXJtIHNlY3VyaXR5IGNvZGVFbnRlciB0aGUgc2VjdXJpdHkgY29kZSBmb3IgJDEuICBUaGlzIGNvZGUgd29uJ3QgYmUgc2F2ZWQuRXhwOiAkMS8kMiwgZXhwICQxRXhwOiAkMSwgbGFzdCB1c2VkICQyTGFzdCB1c2VkICQxRXhwOiAkMSwgYWRkZWQgJDJBZGRlZCAkMUV4cDogJDEsIGxhc3QgdXNlZCBvdmVyIGEgeWVhciBhZ29MYXN0IHVzZWQgb3ZlciBhIHllYXIgYWdvQ2hlY2sgeW91ciBDVkMgYW5kIHRyeSBhZ2FpbkNoZWNrIHlvdXIgZXhwaXJhdGlvbiBkYXRlIGFuZCB0cnkgYWdhaW5DaGVjayB5b3VyIGV4cGlyYXRpb24gZGF0ZSBhbmQgQ1ZDIGFuZCB0cnkgYWdhaW5DaGVjayB5b3VyIGV4cGlyYXRpb24gbW9udGggYW5kIHRyeSBhZ2FpbkNoZWNrIHlvdXIgZXhwaXJhdGlvbiB5ZWFyIGFuZCB0cnkgYWdhaW5DaHJvbWl1bSB3YXMgdW5hYmxlIHRvIGNvbmZpcm0geW91ciBjYXJkIGF0IHRoaXMgdGltZS4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci5UaGVyZSB3YXMgYSBwcm9ibGVtIGNvbmZpcm1pbmcgeW91ciBjYXJkLiBDaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2Fpbi5FbnRlciB0aGUgQ1ZDIGZvciAkMUVudGVyIHRoZSBleHBpcmF0aW9uIGRhdGUgYW5kIENWQyBmb3IgJDFBZnRlciB5b3UgY29uZmlybSwgY2FyZCBkZXRhaWxzIGZyb20geW91ciBHb29nbGUgUGF5bWVudHMgYWNjb3VudCB3aWxsIGJlIHNoYXJlZCB3aXRoIHRoaXMgc2l0ZS5PbmNlIHlvdSBjb25maXJtLCB5b3VyIGNhcmQgZGV0YWlscyB3aWxsIGJlIHNoYXJlZCB3aXRoIHRoaXMgc2l0ZS5UaGUgQ1ZDIGlzIGxvY2F0ZWQgYmVoaW5kIHlvdXIgY2FyZC5LZWVwIGEgY29weSBvZiB0aGlzIGNhcmQgb24gdGhpcyBkZXZpY2VJZiBjaGVja2VkLCBDaHJvbWl1bSB3aWxsIHN0b3JlIGEgY29weSBvZiB5b3VyIGNhcmQgb24gdGhpcyBkZXZpY2UgZm9yIGZhc3RlciBmb3JtIGZpbGxpbmcuQ29uZmlybWluZyBjYXJkWW91ciBjYXJkIGlzIGNvbmZpcm1lZFRoZSBjYXJkIGlzIGV4cGlyZWQvTmV3IGNhcmQ/Q1ZDRmFpbGVkIGxvYWRpbmcgcmVnaW9ucyBkYXRhTm8gc2F2ZWQgYWRkcmVzc2VzRnJvbSBHb29nbGUgUGF5Qm9va21hcmtzIGJhck1vYmlsZSBib29rbWFya3NPdGhlciBib29rbWFya3MkMSBib29rbWFya3NNYW5hZ2VkIGJvb2ttYXJrc0Jvb2ttYXJrIHRoaXMgcGFnZUp1c3Qgbm93e0NPVU5ULCBwbHVyYWwsCiAgICAgPTAge05vbmV9CiAgICAgPTEgezEgaXRlbX0KICAgICBvdGhlciB7IyBpdGVtc319e0NPVU5ULCBwbHVyYWwsCiAgICAgPTAge0F0IGxlYXN0IDEgaXRlbSBvbiBzeW5jZWQgZGV2aWNlc30KICAgICA9MSB7MSBpdGVtIChhbmQgbW9yZSBvbiBzeW5jZWQgZGV2aWNlcyl9CiAgICAgb3RoZXIgeyMgaXRlbXMgKGFuZCBtb3JlIG9uIHN5bmNlZCBkZXZpY2VzKX19TGVzcyB0aGFuICQxTGVzcyB0aGFuIDEgTUJGcmVlcyB1cCAkMS4gU29tZSBzaXRlcyBtYXkgbG9hZCBtb3JlIHNsb3dseSBvbiB5b3VyIG5leHQgdmlzaXQuRnJlZXMgdXAgbGVzcyB0aGFuICQxLiBTb21lIHNpdGVzIG1heSBsb2FkIG1vcmUgc2xvd2x5IG9uIHlvdXIgbmV4dCB2aXNpdC5GcmVlcyB1cCBsZXNzIHRoYW4gMSBNQi4gU29tZSBzaXRlcyBtYXkgbG9hZCBtb3JlIHNsb3dseSBvbiB5b3VyIG5leHQgdmlzaXQue0NPVU5ULCBwbHVyYWwsCiAgICAgPTAge05vbmV9CiAgICAgPTEgezEgcGFzc3dvcmR9CiAgICAgb3RoZXIgeyMgcGFzc3dvcmRzfX17Q09VTlQsIHBsdXJhbCwKICAgICA9MCB7Tm9uZX0KICAgICA9MSB7MSBwYXNzd29yZCAoc3luY2VkKX0KICAgICBvdGhlciB7IyBwYXNzd29yZHMgKHN5bmNlZCl9fXtDT1VOVCwgcGx1cmFsLAogICAgID0wIHtOb25lfQogICAgID0xIHsxIHNpdGV9CiAgICAgb3RoZXIgeyMgc2l0ZXN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIGNyZWRpdCBjYXJkfQogICAgIG90aGVyIHsjIGNyZWRpdCBjYXJkc319e0NPVU5ULCBwbHVyYWwsCiAgICAgPTEgezEgYWRkcmVzc30KICAgICBvdGhlciB7IyBhZGRyZXNzZXN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIHN1Z2dlc3Rpb259CiAgICAgb3RoZXIgeyMgc3VnZ2VzdGlvbnN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIG90aGVyIHN1Z2dlc3Rpb259CiAgICAgb3RoZXIgeyMgb3RoZXIgc3VnZ2VzdGlvbnN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIG90aGVyfQogICAgIG90aGVyIHsjIG90aGVyc319JDEgKHN5bmNlZCkkMSwgJDIgKHN5bmNlZCkkMSwgJDIsICQzJDEsICQyLCAkMyAoc3luY2VkKVRoaXMgd2lsbCBzaWduIHlvdSBvdXQgb2YgbW9zdCB3ZWJzaXRlcy57Q09VTlQsIHBsdXJhbCwKICAgICAgPTAge05vbmV9CiAgICAgID0xIHtGcm9tIDEgc2l0ZSB9CiAgICAgIG90aGVyIHtGcm9tICMgc2l0ZXMgfX17Q09VTlQsIHBsdXJhbCwKICAgICA9MCB7Tm9uZX0KICAgICA9MSB7MSBhcHAgKCQxKX0KICAgICA9MiB7MiBhcHBzICgkMSwgJDIpfQogICAgIG90aGVyIHsjIGFwcHMgKCQxLCAkMiwgJDMpfX17Q09VTlQsIHBsdXJhbCwKICAgICA9MSB7YW5kIDEgbW9yZX0KICAgICBvdGhlciB7YW5kICMgbW9yZX19WW91IG1heSBsb3NlIGFjY2VzcyB0byBwcm90ZWN0ZWQgY29udGVudCBmcm9tIHNvbWUgc2l0ZXMuWW91IG1heSBsb3NlIGFjY2VzcyB0byBwcm90ZWN0ZWQgY29udGVudCBmcm9tICQxIGFuZCBzb21lIG90aGVyIHNpdGVzLkhpZGUgYWR2YW5jZWQgc2V0dGluZ3PigKZTaG93IGFkdmFuY2VkIHNldHRpbmdz4oCmQ2hhbmdlIHByb3h5IHNldHRpbmdz4oCmQ3Jhc2hlc0NyYXNoZXMgKCQxKVVwbG9hZGVkIENyYXNoIFJlcG9ydCBJRCAkMSAoTG9jYWwgQ3Jhc2ggSUQ6ICQyKUxvY2FsIENyYXNoIElEICQxQ3Jhc2ggcmVwb3J0IHVwbG9hZGVkIG9uICQxQ3Jhc2ggcmVwb3J0IGNhcHR1cmVkIG9uICQxLCB1cGxvYWRlZCBvbiAkMkNyYXNoIHJlcG9ydCBjYXB0dXJlZCBvbiAkMSB3YXMgbm90IHVwbG9hZGVkQ3Jhc2ggcmVwb3J0IGNhcHR1cmVkIG9uICQxIChub3QgeWV0IHVwbG9hZGVkIG9yIGlnbm9yZWQpQ3Jhc2ggcmVwb3J0IGNhcHR1cmVkIG9uICQxICh1cGxvYWQgcmVxdWVzdGVkIGJ5IHVzZXIsIG5vdCB5ZXQgdXBsb2FkZWQpUHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHNZb3UgaGF2ZSBubyByZWNlbnRseSByZXBvcnRlZCBjcmFzaGVzLiAgQ3Jhc2hlcyB0aGF0IG9jY3VycmVkIHdoZW4gY3Jhc2ggcmVwb3J0aW5nIHdhcyBkaXNhYmxlZCB3aWxsIG5vdCBhcHBlYXIgaGVyZS5DcmFzaCByZXBvcnRpbmcgaXMgZGlzYWJsZWQuU3RhcnQgdXBsb2FkaW5nIGNyYXNoZXNTZW5kIG5vd1RoZSBzaXplIG9uIHRoZSBsb2NhbCBzdG9yYWdlIGlzICQxLkNvbmZpcm0gRm9ybSBSZXN1Ym1pc3Npb25UaGUgcGFnZSB0aGF0IHlvdSdyZSBsb29raW5nIGZvciB1c2VkIGluZm9ybWF0aW9uIHRoYXQgeW91IGVudGVyZWQuIFJldHVybmluZyB0byB0aGF0IHBhZ2UgbWlnaHQgY2F1c2UgYW55IGFjdGlvbiB5b3UgdG9vayB0byBiZSByZXBlYXRlZC4gRG8geW91IHdhbnQgdG8gY29udGludWU/SmF2YVNjcmlwdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIHRoaXMgZmVhdHVyZS5GYWlsZWQgdG8gYWRkIGFydGljbGUuRmFpbGVkIHRvIHZpZXcgYXJ0aWNsZS5GZXRjaGluZyBlbnRyaWVz4oCmRmFpbGVkIHRvIGZpbmQgYXJ0aWNsZUNvdWxkIG5vdCBmaW5kIHRoZSByZXF1ZXN0ZWQgYXJ0aWNsZS5SZWFkZXIgTW9kZU5vIGRhdGEgZm91bmQuV2FzIHRoZSB0ZXh0IGV4dHJhY3RlZCBjb3JyZWN0bHk/RE9NIERpc3RpbGxlckhpZGUgZGV0YWlsc1Nob3cgc2F2ZWQgY29weVNob3cgYSBzYXZlZCAoaS5lLiBrbm93biB0byBiZSBvdXQgb2YgZGF0ZSkgY29weSBvZiB0aGlzIHBhZ2UuVGhlIG93bmVyIG9mIHRoaXMgZGV2aWNlIHR1cm5lZCBvZmYgdGhlIGRpbm9zYXVyIGdhbWUuQWNjZXNzIGEgPGEganN2YWx1ZXM9ImhyZWY6dXJsQ29ycmVjdGlvbjsuanN0ZGF0YTokdGhpcyIgb25tb3VzZWRvd249ImxpbmtDbGlja2VkKHRoaXMuanN0ZGF0YSkiPmNhY2hlZCBjb3B5PC9hPiBvZiA8c3BhbiBqc2NvbnRlbnQ9Im9yaWdpbmFsVXJsRm9yRGlzcGxheSI+PC9zcGFuPkRpZCB5b3UgbWVhbiA8YSBqc3ZhbHVlcz0iaHJlZjp1cmxDb3JyZWN0aW9uOy5qc3RkYXRhOiR0aGlzIiBvbm1vdXNlZG93bj0ibGlua0NsaWNrZWQodGhpcy5qc3RkYXRhKSIganNjb250ZW50PSJ1cmxDb3JyZWN0aW9uRm9yRGlzcGxheSI+PC9hPj9HbyB0byA8YSBqc3ZhbHVlcz0iaHJlZjp1cmxDb3JyZWN0aW9uOy5qc3RkYXRhOiR0aGlzIiBvbm1vdXNlZG93bj0ibGlua0NsaWNrZWQodGhpcy5qc3RkYXRhKSIganNjb250ZW50PSJ1cmxDb3JyZWN0aW9uRm9yRGlzcGxheSI+PC9hPlByZXNzIHRoZSByZWxvYWQgYnV0dG9uIHRvIHJlc3VibWl0IHRoZSBkYXRhIG5lZWRlZCB0byBsb2FkIHRoZSBwYWdlLkNoZWNrIHlvdXIgSW50ZXJuZXQgY29ubmVjdGlvbkNoZWNrIGFueSBjYWJsZXMgYW5kIHJlYm9vdCBhbnkgcm91dGVycywgbW9kZW1zLCBvciBvdGhlciBuZXR3b3JrCiAgICBkZXZpY2VzIHlvdSBtYXkgYmUgdXNpbmcuQ2hlY2sgeW91ciBETlMgc2V0dGluZ3NDb250YWN0IHlvdXIgbmV0d29yayBhZG1pbmlzdHJhdG9yIGlmIHlvdSdyZSBub3Qgc3VyZSB3aGF0IHRoaXMgbWVhbnMuVHJ5IGRpc2FibGluZyBuZXR3b3JrIHByZWRpY3Rpb25JZiBpdCBpcyBhbHJlYWR5IGxpc3RlZCBhcyBhIHByb2dyYW0gYWxsb3dlZCB0byBhY2Nlc3MgdGhlIG5ldHdvcmssIHRyeQogICAgICByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0IGFuZCBhZGRpbmcgaXQgYWdhaW4uSWYgeW91IHVzZSBhIHByb3h5IHNlcnZlcuKApkNoZWNrIHlvdXIgcHJveHkgc2V0dGluZ3Mgb3IgY29udGFjdCB5b3VyIG5ldHdvcmsgYWRtaW5pc3RyYXRvciB0bwogICAgICBtYWtlIHN1cmUgdGhlIHByb3h5IHNlcnZlciBpcyB3b3JraW5nLiBJZiB5b3UgZG9uJ3QgYmVsaWV2ZSB5b3Ugc2hvdWxkCiAgICAgIGJlIHVzaW5nIGEgcHJveHkgc2VydmVyOgogICAgICAkMUNoZWNrIHlvdXIgYWRtaW5pc3RyYXRvcidzIHBvbGljaWVzVmlzaXQgPHN0cm9uZz5jaHJvbWU6Ly9wb2xpY3k8L3N0cm9uZz4gdG8gc2VlIHRoZSBsaXN0IG9mIGJsYWNrbGlzdGVkIFVSTHMgYW5kIG90aGVyIHBvbGljaWVzIGVuZm9yY2VkIGJ5IHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IuVW5zdXBwb3J0ZWQgcHJvdG9jb2xUaGUgY2xpZW50IGFuZCBzZXJ2ZXIgZG9uJ3Qgc3VwcG9ydCBhIGNvbW1vbiBTU0wgcHJvdG9jb2wgdmVyc2lvbiBvciBjaXBoZXIgc3VpdGUuVHJ5IDxhIGpzdmFsdWVzPSJocmVmOm9yaWdpblVSTDsuanN0ZGF0YTokdGhpcyIgb25tb3VzZWRvd249ImxpbmtDbGlja2VkKHRoaXMuanN0ZGF0YSkiPnZpc2l0aW5nIHRoZSBzaXRlJ3MgaG9tZXBhZ2U8L2E+LlRoaXMgc2l0ZSBjYW7igJl0IGJlIHJlYWNoZWRZb3VyIEludGVybmV0IGFjY2VzcyBpcyBibG9ja2VkVGhlcmUgaXMgbm8gSW50ZXJuZXQgY29ubmVjdGlvblRoaXMgc2l0ZSBjYW7igJl0IGJlIGxvYWRlZCBmcm9tIHRoZSBjYWNoZVlvdXIgY29ubmVjdGlvbiB3YXMgaW50ZXJydXB0ZWRUaGlzIDxzcGFuIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Bhbj4gcGFnZSBjYW7igJl0IGJlIGZvdW5kWW91ciBmaWxlIHdhcyBub3QgZm91bmQ8c3BhbiBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3NwYW4+IGlzIGJsb2NrZWRUaGUgd2VicGFnZSBhdCA8c3Ryb25nIGpzY29udGVudD0iZmFpbGVkVXJsIj48L3N0cm9uZz4gbWlnaHQgYmUgdGVtcG9yYXJpbHkgZG93biBvciBpdCBtYXkgaGF2ZSBtb3ZlZCBwZXJtYW5lbnRseSB0byBhIG5ldyB3ZWIgYWRkcmVzcy48c3Ryb25nIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Ryb25nPiB0b29rIHRvbyBsb25nIHRvIHJlc3BvbmQuVGhlIGNvbm5lY3Rpb24gd2FzIHJlc2V0LjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IHVuZXhwZWN0ZWRseSBjbG9zZWQgdGhlIGNvbm5lY3Rpb24uPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gaXMgY3VycmVudGx5IHVucmVhY2hhYmxlLkEgbmV0d29yayBjaGFuZ2Ugd2FzIGRldGVjdGVkLjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IHJlZnVzZWQgdG8gY29ubmVjdC48c3Ryb25nIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Ryb25nPuKAmXMgc2VydmVyIElQIGFkZHJlc3MgY291bGQgbm90IGJlIGZvdW5kLlRoaXMgc2l0ZSBvbiB0aGUgY29tcGFueSwgb3JnYW5pemF0aW9uIG9yIHNjaG9vbCBpbnRyYW5ldCBoYXMgdGhlIHNhbWUgVVJMIGFzIGFuIGV4dGVybmFsIHdlYnNpdGUuCiAgICA8YnIgLz48YnIgLz4KICAgIFRyeSBjb250YWN0aW5nIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IuPHN0cm9uZyBqc2NvbnRlbnQ9ImZhaWxlZFVybCI+PC9zdHJvbmc+IGlzIHVucmVhY2hhYmxlLlRoZSBmaWxlIGF0IDxzdHJvbmcganNjb250ZW50PSJmYWlsZWRVcmwiPjwvc3Ryb25nPiBpcyBub3QgcmVhZGFibGUuICBJdCBtYXkgaGF2ZSBiZWVuIHJlbW92ZWQsIG1vdmVkLCBvciBmaWxlIHBlcm1pc3Npb25zIG1heSBiZSBwcmV2ZW50aW5nIGFjY2Vzcy5GaXJld2FsbCBvciBhbnRpdmlydXMgc29mdHdhcmUgbWF5IGhhdmUgYmxvY2tlZCB0aGUgY29ubmVjdGlvbi5UaGVyZSBpcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCB0aGUgcHJveHkgc2VydmVyLCBvciB0aGUgYWRkcmVzcyBpcyBpbmNvcnJlY3QuVGhlIHNhdmVkIChjYWNoZWQpIGNvcHkgb2YgdGhpcyBzaXRlIHdhcyB1bnJlYWRhYmxlLllvdXIgY29tcHV0ZXIgd2VudCB0byBzbGVlcC5ObyB3ZWJwYWdlIHdhcyBmb3VuZCBmb3IgdGhlIHdlYiBhZGRyZXNzOiA8c3Ryb25nIGpzY29udGVudD0iZmFpbGVkVXJsIj48L3N0cm9uZz5JdCBtYXkgaGF2ZSBiZWVuIG1vdmVkIG9yIGRlbGV0ZWQuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gcmVkaXJlY3RlZCB5b3UgdG9vIG1hbnkgdGltZXMuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gZGlkbuKAmXQgc2VuZCBhbnkgZGF0YS48c3Ryb25nIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Ryb25nPiBzZW50IGFuIGludmFsaWQgcmVzcG9uc2UuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz7igJlzIDxhYmJyIGlkPSJkbnNEZWZpbml0aW9uIj5ETlMgYWRkcmVzczwvYWJicj4gY291bGQgbm90IGJlIGZvdW5kLiBEaWFnbm9zaW5nIHRoZSBwcm9ibGVtLkFjY2VzcyB0byA8c3BhbiBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3NwYW4+IHdhcyBkZW5pZWRBY2Nlc3MgdG8gdGhlIGZpbGUgd2FzIGRlbmllZFlvdSBkb24ndCBoYXZlIGF1dGhvcml6YXRpb24gdG8gdmlldyB0aGlzIHBhZ2UuVGhpcyBwYWdlIGlzbuKAmXQgd29ya2luZ0lmIHRoZSBwcm9ibGVtIGNvbnRpbnVlcywgY29udGFjdCB0aGUgc2l0ZSBvd25lci48c3Ryb25nIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Ryb25nPiBpcyBjdXJyZW50bHkgdW5hYmxlIHRvIGhhbmRsZSB0aGlzIHJlcXVlc3QuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gZG9lc24ndCBhZGhlcmUgdG8gc2VjdXJpdHkgc3RhbmRhcmRzLjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IHVzZXMgYW4gdW5zdXBwb3J0ZWQgcHJvdG9jb2wuVGhpcyBzaXRlIGNhbuKAmXQgcHJvdmlkZSBhIHNlY3VyZSBjb25uZWN0aW9uPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gZGlkbuKAmXQgYWNjZXB0IHlvdXIgbG9naW4gY2VydGlmaWNhdGUsIG9yIG9uZSBtYXkgbm90IGhhdmUgYmVlbiBwcm92aWRlZC5SZXF1ZXN0cyB0byB0aGUgc2VydmVyIGhhdmUgYmVlbiBibG9ja2VkIGJ5IGFuIGV4dGVuc2lvbi5DaHJvbWUgZGV0ZWN0ZWQgdW51c3VhbCBjb2RlIG9uIHRoaXMgcGFnZSBhbmQgYmxvY2tlZCBpdCB0byBwcm90ZWN0IHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gKGZvciBleGFtcGxlLCBwYXNzd29yZHMsIHBob25lIG51bWJlcnMsIGFuZCBjcmVkaXQgY2FyZHMpLlRoZSBwZXJzb24gd2hvIHNldCB1cCB0aGlzIGNvbXB1dGVyIGhhcyBjaG9zZW4gdG8gYmxvY2sgdGhpcyBzaXRlLlRoaXMgd2VicGFnZSByZXF1aXJlcyBkYXRhIHRoYXQgeW91IGVudGVyZWQgZWFybGllciBpbiBvcmRlciB0byBiZSBwcm9wZXJseSBkaXNwbGF5ZWQuIFlvdSBjYW4gc2VuZCB0aGlzIGRhdGEgYWdhaW4sIGJ1dCBieSBkb2luZyBzbyB5b3Ugd2lsbCByZXBlYXQgYW55IGFjdGlvbiB0aGlzIHBhZ2UgcHJldmlvdXNseSBwZXJmb3JtZWQuVHJ5OkNoZWNraW5nIHRoZSBjb25uZWN0aW9uPGEgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9InRvZ2dsZUhlbHBCb3goKSI+Q2hlY2tpbmcgdGhlIHByb3h5LCBmaXJld2FsbCwgYW5kIEROUyBjb25maWd1cmF0aW9uPC9hPjxhIGhyZWY9IiNidXR0b25zIiBvbmNsaWNrPSJ0b2dnbGVIZWxwQm94KCkiPkNoZWNraW5nIGZpcmV3YWxsIGFuZCBhbnRpdmlydXMgY29uZmlndXJhdGlvbnM8L2E+PGEgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9InRvZ2dsZUhlbHBCb3goKSI+Q2hlY2tpbmcgdGhlIHByb3h5IGFuZCB0aGUgZmlyZXdhbGw8L2E+PGEgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9InRvZ2dsZUhlbHBCb3goKSI+Q2hlY2tpbmcgdGhlIHByb3h5IGFkZHJlc3M8L2E+Q29udGFjdGluZyB0aGUgc3lzdGVtIGFkbWluVHJ5IGNvbnRhY3RpbmcgdGhlIHN5c3RlbSBhZG1pbi48YSBqc3ZhbHVlcz0iaHJlZjpsZWFybk1vcmVVcmwiPkxlYXJuaW5nIG1vcmU8L2E+IGFib3V0IHRoaXMgcHJvYmxlbS48YSBqc3ZhbHVlcz0iaHJlZjpsZWFybk1vcmVVcmwiPkxlYXJuIG1vcmU8L2E+IGFib3V0IHRoaXMgcHJvYmxlbS48YSBqc3ZhbHVlcz0iaHJlZjpsZWFybk1vcmVVcmwiPlRyeSBjbGVhcmluZyB5b3VyIGNvb2tpZXM8L2E+LkNoZWNraW5nIHRoZSBuZXR3b3JrIGNhYmxlcywgbW9kZW0sIGFuZCByb3V0ZXJSZWNvbm5lY3RpbmcgdG8gV2ktRmlGaXggeW91ciBjb25uZWN0aW9uIHVzaW5nIHRoZSA8YSAgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9ImphdmFzY3JpcHQ6ZGlhZ25vc2VFcnJvcnMoKSI+ZGlhZ25vc3RpY3MgYXBwPC9hPlNpZ24gb3V0IGFuZCBjb21wbGV0ZSBzZXR1cFRyeSBkaXNhYmxpbmcgeW91ciBleHRlbnNpb25zLlNlYXJjaCBHb29nbGUgZm9yIDxhIGpzdmFsdWVzPSJocmVmOnNlYXJjaFVybDsuanN0ZGF0YTokdGhpcyIgb25jbGljaz0ibGlua0NsaWNrZWQodGhpcy5qc3RkYXRhKSIganNjb250ZW50PSJzZWFyY2hUZXJtcyIgaWQ9InNlYXJjaC1saW5rIj48L2E+UHJldmlvdXNDbG9zZSBmaW5kIGJhckFjdGlvbnNBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZXNlIHBhZ2VzIGZyb20geW91ciBoaXN0b3J5P0Jvb2ttYXJrZWQkMSAkMiAkMyAkNEZvdW5kICQxICQyIGZvciAnJDMnWW91ciBHb29nbGUgQWNjb3VudCBtYXkgaGF2ZSBvdGhlciBmb3JtcyBvZiBicm93c2luZyBoaXN0b3J5IGF0IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+bXlhY3Rpdml0eS5nb29nbGUuY29tPC9hPk1vcmUgZnJvbSB0aGlzIHNpdGVZb3VyIGJyb3dzaW5nIGhpc3RvcnkgYXBwZWFycyBoZXJlQ2xlYXIgYnJvd3NpbmcgZGF0YeKApkNvbGxhcHNlIGxpc3RFeHBhbmQgbGlzdEhpZGUgZm9yIG5vd09wZW4gYWxsUmVtb3ZlIGJvb2ttYXJrUmVtb3ZlIGZyb20gaGlzdG9yeVJlbW92ZSBzZWxlY3RlZCBpdGVtc3NlYXJjaCByZXN1bHRzZWFyY2ggcmVzdWx0c1Nob3cgRnVsbCBIaXN0b3J5VW5rbm93biBkZXZpY2VBdXRoZW50aWNhdGlvbiByZXF1aXJlZExvZyBpbiQxIHJlcXVpcmVzIGEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLlRoZSBwcm94eSAkMSByZXF1aXJlcyBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC5Zb3VyIGNvbm5lY3Rpb24gdG8gdGhpcyBzaXRlIGlzIG5vdCBwcml2YXRlVW50aXRsZWRBdywgU25hcCFTb21ldGhpbmcgd2VudCB3cm9uZyB3aGlsZSBkaXNwbGF5aW5nIHRoaXMgd2VicGFnZS5JZiB5b3UncmUgc2VlaW5nIHRoaXMgZnJlcXVlbnRseSwgdHJ5IHRoZXNlICQxLnN1Z2dlc3Rpb25zQ2FuJ3Qgb3BlbiB0aGlzIHBhZ2VUcnkgY2xvc2luZyBvdGhlciB0YWJzIG9yIHByb2dyYW1zIHRvIGZyZWUgdXAgbWVtb3J5LlRyeSBleGl0aW5nIG90aGVyIHByb2dyYW1zIHRvIGZyZWUgdXAgbWVtb3J5LlRyeSB0aGUgZm9sbG93aW5nIHRpcHM6T3BlbiBwYWdlIGluIGEgbmV3IEluY29nbml0byB3aW5kb3cgKEN0cmwtU2hpZnQtTilDbG9zZSBvdGhlciB0YWJzIG9yIHByb2dyYW1zQ2xvc2Ugb3RoZXIgcHJvZ3JhbXNSZXN0YXJ0IENocm9taXVtUmVzdGFydCB5b3VyIGNvbXB1dGVyWW914oCZdmUgZ29uZSBpbmNvZ25pdG9QYWdlcyB5b3UgdmlldyBpbiBpbmNvZ25pdG8gdGFicyB3b27igJl0IHN0aWNrIGFyb3VuZCBpbiB5b3VyIGJyb3dzZXLigJlzIGhpc3RvcnksIGNvb2tpZSBzdG9yZSwgb3Igc2VhcmNoIGhpc3RvcnkgYWZ0ZXIgeW914oCZdmUgY2xvc2VkIGFsbCBvZiB5b3VyIGluY29nbml0byB0YWJzLiBBbnkgZmlsZXMgeW91IGRvd25sb2FkIG9yIGJvb2ttYXJrcyB5b3UgY3JlYXRlIHdpbGwgYmUga2VwdC5Ib3dldmVyLCB5b3UgYXJlbuKAmXQgaW52aXNpYmxlLiBHb2luZyBpbmNvZ25pdG8gZG9lc27igJl0IGhpZGUgeW91ciBicm93c2luZyBmcm9tIHlvdXIgZW1wbG95ZXIsIHlvdXIgaW50ZXJuZXQgc2VydmljZSBwcm92aWRlciwgb3IgdGhlIHdlYnNpdGVzIHlvdSB2aXNpdC5Ob3cgeW91IGNhbiBicm93c2UgcHJpdmF0ZWx5LCBhbmQgb3RoZXIgcGVvcGxlIHdobyB1c2UgdGhpcyBkZXZpY2Ugd29u4oCZdCBzZWUgeW91ciBhY3Rpdml0eS4gSG93ZXZlciwgZG93bmxvYWRzIGFuZCBib29rbWFya3Mgd2lsbCBiZSBzYXZlZC5DaHJvbWUgPGVtPndvbuKAmXQgc2F2ZTwvZW0+IHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPllvdXIgYnJvd3NpbmcgaGlzdG9yeQogICAgICAgICAgPGxpPkNvb2tpZXMgYW5kIHNpdGUgZGF0YQogICAgICAgICAgPGxpPkluZm9ybWF0aW9uIGVudGVyZWQgaW4gZm9ybXMKICAgICAgICA8L3VsPllvdXIgYWN0aXZpdHkgPGVtPm1pZ2h0IHN0aWxsIGJlIHZpc2libGU8L2VtPiB0bzoKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+V2Vic2l0ZXMgeW91IHZpc2l0CiAgICAgICAgICA8bGk+WW91ciBlbXBsb3llciBvciBzY2hvb2wKICAgICAgICAgIDxsaT5Zb3VyIGludGVybmV0IHNlcnZpY2UgcHJvdmlkZXIKICAgICAgICA8L3VsPkFydGljbGVzIGFyZW4ndCBhdmFpbGFibGUgcmlnaHQgbm93QXJ0aWNsZXMgZm9yIHlvdVlvdXIgc3VnZ2VzdGVkIGFydGljbGVzIGFwcGVhciBoZXJlUmVjZW50IGJvb2ttYXJrc1lvdXIgcmVjZW50bHkgdmlzaXRlZCBib29rbWFya3MgYXBwZWFyIGhlcmVZb3VyIHJlY2VudCB0YWJzIGZyb20gb3RoZXIgZGV2aWNlcyBhcHBlYXIgaGVyZU5lYXJieVlvdXIgbmVhcmJ5IHN1Z2dlc3Rpb25zIGFwcGVhciBoZXJlUmVhZGluZyBsaXN0UGFnZXMgZnJvbSB5b3VyIHJlYWRpbmcgbGlzdCBhcHBlYXIgaGVyZU9wZW4gdGFic1lvdXIgb3BlbiB0YWJzIGFwcGVhciBoZXJlRnJvbSAkMS4gUmVhZCB0aGlzIGFuZCAkMiBvdGhlciBzdG9yaWVzLiQxIFNlYXJjaDxUeXBlIHNlYXJjaCB0ZXJtPkxpbmsgeW91IGNvcGllZCQxIFskMl1TZWN1cmVOb3Qgc2VjdXJlRGFuZ2Vyb3VzT2ZmbGluZVN3aXRjaCB0byB0YWJQaHlzaWNhbCBXZWIgc3VnZ2VzdGlvbnN7VVJMX2NvdW50LCBwbHVyYWwsID0xIHthbmQgMSBtb3JlIHdlYiBwYWdlfSBvdGhlciB7YW5kICMgbW9yZSB3ZWIgcGFnZXN9fXtVUkxfY291bnQsIHBsdXJhbCwgPTEgezEgd2ViIHBhZ2UgbmVhcmJ5fSBvdGhlciB7IyB3ZWIgcGFnZXMgbmVhcmJ5fX0kMiAkMSBsb2NhdGlvbiBmcm9tIGhpc3RvcnkkMSBzZWFyY2ggZnJvbSBoaXN0b3J5JDEgc2VhcmNoJDEgc2VhcmNoIHN1Z2dlc3Rpb24kMiAkMSBib29rbWFyayQyICQxIGxvY2F0aW9uIGZyb20gY2xpcGJvYXJkJDEsICQyIG9mICQzU2VjdXJlIGNvbm5lY3Rpb25Zb3VyIGNvbm5lY3Rpb24gdG8gdGhpcyBzaXRlIGlzIG5vdCBmdWxseSBzZWN1cmVZb3VyIGNvbm5lY3Rpb24gdG8gdGhpcyBzaXRlIGlzIG5vdCBzZWN1cmVUaGlzIHNpdGUgY29udGFpbnMgbWFsd2FyZVRoaXMgc2l0ZSBpcyBkZWNlcHRpdmVUaGlzIHNpdGUgY29udGFpbnMgaGFybWZ1bCBwcm9ncmFtc1lvdSdyZSB2aWV3aW5nIGFuIGV4dGVuc2lvbiBwYWdlWW91J3JlIHZpZXdpbmcgdGhlIHNvdXJjZSBvZiBhIHdlYiBwYWdlWW91ciBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIHBhc3N3b3JkcyBvciBjcmVkaXQgY2FyZCBudW1iZXJzKSBpcyBwcml2YXRlIHdoZW4gaXQgaXMgc2VudCB0byB0aGlzIHNpdGUuQXR0YWNrZXJzIG1pZ2h0IGJlIGFibGUgdG8gc2VlIHRoZSBpbWFnZXMgeW914oCZcmUgbG9va2luZyBhdCBvbiB0aGlzIHNpdGUgYW5kIHRyaWNrIHlvdSBieSBtb2RpZnlpbmcgdGhlbS5Zb3Ugc2hvdWxkIG5vdCBlbnRlciBhbnkgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIG9uIHRoaXMgc2l0ZSAoZm9yIGV4YW1wbGUsIHBhc3N3b3JkcyBvciBjcmVkaXQgY2FyZHMpLCBiZWNhdXNlIGl0IGNvdWxkIGJlIHN0b2xlbiBieSBhdHRhY2tlcnMuQXR0YWNrZXJzIG9uIHRoaXMgc2l0ZSBtaWdodCBhdHRlbXB0IHRvIGluc3RhbGwgZGFuZ2Vyb3VzIHByb2dyYW1zIG9uIHlvdXIgY29tcHV0ZXIgdGhhdCBzdGVhbCBvciBkZWxldGUgeW91ciBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIHBob3RvcywgcGFzc3dvcmRzLCBtZXNzYWdlcywgYW5kIGNyZWRpdCBjYXJkcykuQXR0YWNrZXJzIG9uIHRoaXMgc2l0ZSBtYXkgdHJpY2sgeW91IGludG8gZG9pbmcgc29tZXRoaW5nIGRhbmdlcm91cyBsaWtlIGluc3RhbGxpbmcgc29mdHdhcmUgb3IgcmV2ZWFsaW5nIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gKGZvciBleGFtcGxlLCBwYXNzd29yZHMsIHBob25lIG51bWJlcnMsIG9yIGNyZWRpdCBjYXJkcykuQXR0YWNrZXJzIG9uIHRoaXMgc2l0ZSBtaWdodCB0cnkgdG8gdHJpY2sgeW91IGludG8gaW5zdGFsbGluZyBwcm9ncmFtcyB0aGF0IGhhcm0geW91ciBicm93c2luZyBleHBlcmllbmNlIChmb3IgZXhhbXBsZSwgYnkgY2hhbmdpbmcgeW91ciBob21lcGFnZSBvciBzaG93aW5nIGV4dHJhIGFkcyBvbiBzaXRlcyB5b3UgdmlzaXQpLlRoZSBpZGVudGl0eSBvZiB0aGlzIHdlYnNpdGUgaGFzIG5vdCBiZWVuIHZlcmlmaWVkLllvdSBoYXZlIGNob3NlbiB0byBkaXNhYmxlIHNlY3VyaXR5IHdhcm5pbmdzIGZvciB0aGlzIHNpdGUuUmUtZW5hYmxlIHdhcm5pbmdzV2hhdCBkbyB0aGVzZSBtZWFuP1RoZSBjZXJ0aWZpY2F0ZSBjaGFpbiBmb3IgdGhpcyBzaXRlIGNvbnRhaW5zIGEgY2VydGlmaWNhdGUgc2lnbmVkIHVzaW5nIFNIQS0xLllvdXIgY29ubmVjdGlvbiB0byAkMSBpcyBlbmNyeXB0ZWQgdXNpbmcgYSBtb2Rlcm4gY2lwaGVyIHN1aXRlLkZ1cnRoZXIsIHRoaXMgcGFnZSBpbmNsdWRlcyBvdGhlciByZXNvdXJjZXMgd2hpY2ggYXJlIG5vdCBzZWN1cmUuIFRoZXNlIHJlc291cmNlcyBjYW4gYmUgdmlld2VkIGJ5IG90aGVycyB3aGlsZSBpbiB0cmFuc2l0LCBhbmQgY2FuIGJlIG1vZGlmaWVkIGJ5IGFuIGF0dGFja2VyIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIHBhZ2UuRnVydGhlciwgdGhpcyBwYWdlIGluY2x1ZGVzIG90aGVyIHJlc291cmNlcyB3aGljaCBhcmUgbm90IHNlY3VyZS4gVGhlc2UgcmVzb3VyY2VzIGNhbiBiZSB2aWV3ZWQgYnkgb3RoZXJzIHdoaWxlIGluIHRyYW5zaXQsIGFuZCBjYW4gYmUgbW9kaWZpZWQgYnkgYW4gYXR0YWNrZXIgdG8gY2hhbmdlIHRoZSBsb29rIG9mIHRoZSBwYWdlLlRoaXMgcGFnZSBpbmNsdWRlcyBhIGZvcm0gdGhhdCBtYXkgbm90IHN1Ym1pdCBzZWN1cmVseS4gRGF0YSB5b3Ugc2VuZCBjYW4gYmUgdmlld2VkIGJ5IG90aGVycyB3aGlsZSBpbiB0cmFuc2l0IG9yIGNvdWxkIGJlIG1vZGlmaWVkIGJ5IGFuIGF0dGFja2VyIHRvIGNoYW5nZSB3aGF0IHRoZSBzZXJ2ZXIgcmVjZWl2ZXMuJDEgJDJUaGUgY29ubmVjdGlvbiBpcyBlbmNyeXB0ZWQgdXNpbmcgJDEsIHdpdGggJDIgZm9yIG1lc3NhZ2UgYXV0aGVudGljYXRpb24gYW5kICQzIGFzIHRoZSBrZXkgZXhjaGFuZ2UgbWVjaGFuaXNtLlRoZSBjb25uZWN0aW9uIGlzIGVuY3J5cHRlZCBhbmQgYXV0aGVudGljYXRlZCB1c2luZyAkMSBhbmQgdXNlcyAkMiBhcyB0aGUga2V5IGV4Y2hhbmdlIG1lY2hhbmlzbS5UaGUgaWRlbnRpdHkgb2YgdGhlIHNlcnZlciB5b3UgYXJlIGNvbm5lY3RlZCB0byBjYW5ub3QgYmUgZnVsbHkgdmFsaWRhdGVkLiBZb3UgYXJlIGNvbm5lY3RlZCB0byBhIHNlcnZlciB1c2luZyBhIG5hbWUgb25seSB2YWxpZCB3aXRoaW4geW91ciBuZXR3b3JrLCB3aGljaCBhbiBleHRlcm5hbCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgaGFzIG5vIHdheSB0byB2YWxpZGF0ZSBvd25lcnNoaXAgb2YuIEFzIHNvbWUgY2VydGlmaWNhdGUgYXV0aG9yaXRpZXMgd2lsbCBpc3N1ZSBjZXJ0aWZpY2F0ZXMgZm9yIHRoZXNlIG5hbWVzIHJlZ2FyZGxlc3MsIHRoZXJlIGlzIG5vIHdheSB0byBlbnN1cmUgeW91IGFyZSBjb25uZWN0ZWQgdG8gdGhlIGludGVuZGVkIHdlYnNpdGUgYW5kIG5vdCBhbiBhdHRhY2tlci5Zb3VyIGNvbm5lY3Rpb24gdG8gJDEgaXMgbm90IGVuY3J5cHRlZC5UaGUgY2VydGlmaWNhdGUgZG9lcyBub3Qgc3BlY2lmeSBhIG1lY2hhbmlzbSB0byBjaGVjayB3aGV0aGVyIGl0IGhhcyBiZWVuIHJldm9rZWQuVGhlIGNvbm5lY3Rpb24gdXNlcyAkMS5VbmFibGUgdG8gY2hlY2sgd2hldGhlciB0aGUgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmV2b2tlZC51bmtub3duIG5hbWVZb3VyIGNvbm5lY3Rpb24gdG8gJDEgaXMgZW5jcnlwdGVkIHVzaW5nIGFuIG9ic29sZXRlIGNpcGhlciBzdWl0ZS5DZXJ0aWZpY2F0ZSBpbmZvcm1hdGlvbiQxLCAkMiAkM1RoZSBpZGVudGl0eSBvZiAkMSBhdCAkMiBoYXMgYmVlbiB2ZXJpZmllZCBieSAkMy5WYWxpZEludmFsaWRDZXJ0aWZpY2F0ZSAkMShWYWxpZCkoSW52YWxpZClTaG93IGNlcnRpZmljYXRlIChpc3N1ZWQgYnkgJDEpU2hvdyBjZXJ0aWZpY2F0ZXtOVU1fQ09PS0lFUywgcGx1cmFsLCA9MSB7MSBpbiB1c2V9IG90aGVyIHsjIGluIHVzZX19Q29va2llcyAkMSh7TlVNX0NPT0tJRVMsIHBsdXJhbCwgPTEgezEgaW4gdXNlfSBvdGhlciB7IyBpbiB1c2V9fSlTaG93IGNvb2tpZXNBdXRvcGxheUJhY2tncm91bmQgU3luY01JREkgZGV2aWNlcyBmdWxsIGNvbnRyb2xEZXRlY3REZXRlY3QgKGRlZmF1bHQpVXNlIGdsb2JhbCBkZWZhdWx0IChBbGxvdylVc2UgZ2xvYmFsIGRlZmF1bHQgKEJsb2NrKVVzZSBnbG9iYWwgZGVmYXVsdCAoQXNrKVVzZSBnbG9iYWwgZGVmYXVsdCAoRGV0ZWN0KUFsd2F5cyBhbGxvdyBvbiB0aGlzIHNpdGVBbHdheXMgYmxvY2sgb24gdGhpcyBzaXRlQWx3YXlzIGRldGVjdCBpbXBvcnRhbnQgY29udGVudCBvbiB0aGlzIHNpdGVCbG9jayBvbiB0aGlzIHNpdGVTZWxlY3QgcGVybWlzc2lvbiBmb3IgJDFSZXZva2UgYWNjZXNzU2l0ZSBzZXR0aW5nc09wZW4gc2l0ZSBzZXR0aW5nc0FsbG93ZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yQmxvY2tlZCBieSB5b3VyIGFkbWluaXN0cmF0b3JTZXR0aW5nIGNvbnRyb2xsZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yQWxsb3dlZCBieSBhbiBleHRlbnNpb25CbG9ja2VkIGJ5IGFuIGV4dGVuc2lvblNldHRpbmcgY29udHJvbGxlZCBieSBhbiBleHRlbnNpb25BdXRvbWF0aWNhbGx5IGJsb2NrZWRTaXRlIHRlbmRzIHRvIHNob3cgaW50cnVzaXZlIGFkc1RvIGFwcGx5IHlvdXIgdXBkYXRlZCBzZXR0aW5ncyB0byB0aGlzIHNpdGUsIHJlbG9hZCB0aGlzIHBhZ2VUaGlzIHNpdGUgbWF5IGhhdmUganVzdCBzdG9sZW4geW91ciBwYXNzd29yZFlvdSBjb3VsZCBsb3NlIGFjY2VzcyB0byB5b3VyIEdvb2dsZSBBY2NvdW50IG9yIGV4cGVyaWVuY2UgaWRlbnRpdHkgdGhlZnQuIENocm9taXVtIHJlY29tbWVuZHMgY2hhbmdpbmcgeW91ciBwYXNzd29yZCBub3cuSGVscCBtZSBmaXggdGhpc1NpdGUgaXMgbGVnaXRpbWF0ZVNpZ25pbmcgaW4gYXMgJDEoTm8gdXNlcm5hbWUpTmV2ZXIgc2F2ZWRHb29nbGUgU21hcnQgTG9ja0Nocm9tZSBQYXNzd29yZHNZb3VyIHBheW1lbnRQYXltZW50IG1ldGhvZENvbnRhY3QgaW5mb0FkZCBjb250YWN0IGluZm9FZGl0IGNvbnRhY3QgaW5mb0FkZCBuYW1lIG9uIGNhcmRBZGQgdmFsaWQgY2FyZCBudW1iZXJBZGQgbW9yZSBpbmZvcm1hdGlvbkFkZCBwaG9uZSBudW1iZXJBZGQgbmFtZUFkZCB2YWxpZCBhZGRyZXNzQWRkIGVtYWlsT3JkZXIgc3VtbWFyeVBheW1lbnRTaGlwcGluZ1NoaXBwaW5nIGFkZHJlc3NTaGlwcGluZyBtZXRob2REZWxpdmVyeURlbGl2ZXJ5IGFkZHJlc3NEZWxpdmVyeSBtZXRob2RQaWNrdXBQaWNrdXAgYWRkcmVzc1BpY2t1cCBtZXRob2RQYXlDYW5jZWwgcGF5bWVudFBob25lIG51bWJlclNhdmUgdGhpcyBjYXJkIHRvIHRoaXMgZGV2aWNlQWNjZXB0ZWQgY2FyZHNBY2NlcHRlZCBjcmVkaXQgY2FyZHNBY2NlcHRlZCBkZWJpdCBjYXJkc0FjY2VwdGVkIHByZXBhaWQgY2FyZHNBY2NlcHRlZCBjcmVkaXQgYW5kIGRlYml0IGNhcmRzQWNjZXB0ZWQgY3JlZGl0IGFuZCBwcmVwYWlkIGNhcmRzQWNjZXB0ZWQgZGViaXQgYW5kIHByZXBhaWQgY2FyZHNFeHBpcmVzICUxJHMvJTIkc1Byb2Nlc3NpbmdQYXltZW50IG5vdCBjb21wbGV0ZWRDcmVkaXQgY2FyZHMgYXJlIGFjY2VwdGVkLkRlYml0IGNhcmRzIGFyZSBhY2NlcHRlZC5QcmVwYWlkIGNhcmRzIGFyZSBhY2NlcHRlZC5DcmVkaXQgYW5kIGRlYml0IGNhcmRzIGFyZSBhY2NlcHRlZC5DcmVkaXQgYW5kIHByZXBhaWQgY2FyZHMgYXJlIGFjY2VwdGVkLkRlYml0IGFuZCBwcmVwYWlkIGNhcmRzIGFyZSBhY2NlcHRlZC5UaGVyZSB3YXMgYW4gZXJyb3IgcHJvY2Vzc2luZyB5b3VyIG9yZGVyLiBQbGVhc2UgdHJ5IGFnYWluLllvdSBjYW4gbWFuYWdlIGNhcmRzIGFuZCBhZGRyZXNzZXMgaW4gQkVHSU5fTElOS1NldHRpbmdzRU5EX0xJTksuQ2FyZHMgYW5kIGFkZHJlc3NlcyBhcmUgZnJvbSBDaHJvbWUgYW5kIHlvdXIgR29vZ2xlIEFjY291bnQgKCQxKS4gWW91IGNhbiBtYW5hZ2UgdGhlbSBpbiBCRUdJTl9MSU5LU2V0dGluZ3NFTkRfTElOSy5DYXJkcyBhbmQgYWRkcmVzc2VzIGFyZSBmcm9tIENocm9tZS4gWW91IGNhbiBtYW5hZ2UgdGhlbSBpbiBCRUdJTl9MSU5LU2V0dGluZ3NFTkRfTElOSy4qIEZpZWxkIGlzIHJlcXVpcmVkRW50ZXIgYSBuYW1lRW50ZXIgYSB2YWxpZCBleHBpcmF0aW9uIHllYXJFbnRlciBhIHZhbGlkIGV4cGlyYXRpb24gbW9udGhUaGlzIGNhcmQgaXMgZXhwaXJlZFRoaXMgdHlwZSBvZiBjYXJkIGlzbuKAmXQgc3VwcG9ydGVkVGhpcyBjYXJkIG51bWJlciBpcyBhbHJlYWR5IHVzZWRFbnRlciBhIHZhbGlkIHBob25lIG51bWJlckVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzc0VudGVyIGEgdmFsaWQgY2FyZCBudW1iZXJFbnRlciBhIHZhbGlkIGV4cGlyYXRpb24gZGF0ZUVudGVyIGEgdmFsaWQgYWRkcmVzc0JpbGxpbmcgYWRkcmVzcyByZXF1aXJlZENhcmRob2xkZXIgbmFtZSByZXF1aXJlZENhcmQgYmlsbGluZyBhZGRyZXNzIHJlcXVpcmVkTW9yZSBpbmZvcm1hdGlvbiByZXF1aXJlZFBob25lIG51bWJlciByZXF1aXJlZE5hbWUgcmVxdWlyZWRFbWFpbCByZXF1aXJlZFJlcXVpcmVkIGZpZWxkJDEgJDIgJDN7TU9SRV9JVEVNUywgcGx1cmFsLAogICAgICA9MSB7IyBtb3JlIGl0ZW19CiAgICAgIG90aGVyIHsjIG1vcmUgaXRlbXN9fU11bHRpcGxlVG8gc2VlIHNoaXBwaW5nIG1ldGhvZHMgYW5kIHJlcXVpcmVtZW50cywgc2VsZWN0IGFuIGFkZHJlc3NDYW7igJl0IHNoaXAgdG8gdGhpcyBhZGRyZXNzLiBTZWxlY3QgYSBkaWZmZXJlbnQgYWRkcmVzcy5UaGlzIHNoaXBwaW5nIG1ldGhvZCBpc27igJl0IGF2YWlsYWJsZS4gVHJ5IGEgZGlmZmVyZW50IG1ldGhvZC5UbyBzZWUgZGVsaXZlcnkgbWV0aG9kcyBhbmQgcmVxdWlyZW1lbnRzLCBzZWxlY3QgYW4gYWRkcmVzc0NhbuKAmXQgZGVsaXZlciB0byB0aGlzIGFkZHJlc3MuIFNlbGVjdCBhIGRpZmZlcmVudCBhZGRyZXNzLlRoaXMgZGVsaXZlcnkgbWV0aG9kIGlzbuKAmXQgYXZhaWxhYmxlLiBUcnkgYSBkaWZmZXJlbnQgbWV0aG9kLlRvIHNlZSBwaWNrdXAgbWV0aG9kcyBhbmQgcmVxdWlyZW1lbnRzLCBzZWxlY3QgYW4gYWRkcmVzc0NhbuKAmXQgcGljayB1cCBmcm9tIHRoaXMgYWRkcmVzcy4gU2VsZWN0IGEgZGlmZmVyZW50IGFkZHJlc3MuVGhpcyBwaWNrdXAgbWV0aG9kIGlzbuKAmXQgYXZhaWxhYmxlLiBUcnkgYSBkaWZmZXJlbnQgbWV0aG9kLkNhbuKAmXQgb3BlbiBwYXltZW50IGFwcFBheW1lbnQgTWFuaWZlc3QgUGFyc2Vye1BBWU1FTlRfTUVUSE9ELCBwbHVyYWwsCiAgICAgICA9MCB7ezF9fQogICAgICAgPTEge3sxfSBhbmQgezJ9IG1vcmV9CiAgICAgICBvdGhlciB7ezF9IGFuZCB7Mn0gbW9yZX19e1NISVBQSU5HX0FERFJFU1MsIHBsdXJhbCwKICAgICAgPTAge3sxfX0KICAgICAgPTEge3sxfSBhbmQgezJ9IG1vcmV9CiAgICAgIG90aGVyIHt7MX0gYW5kIHsyfSBtb3JlfX17U0hJUFBJTkdfT1BUSU9OUywgcGx1cmFsLAogICAgICAgPTAge3sxfX0KICAgICAgID0xIHt7MX0gYW5kIHsyfSBtb3JlfQogICAgICAgb3RoZXIge3sxfSBhbmQgezJ9IG1vcmV9fXtDT05UQUNULCBwbHVyYWwsCiAgICAgICA9MCB7ezF9fQogICAgICAgPTEge3sxfSBhbmQgezJ9IG1vcmV9CiAgICAgICBvdGhlciB7ezF9IGFuZCB7Mn0gbW9yZX19JDEsIGN1cnJlbnRseSBzZWxlY3RlZC4gJDJUaGlzIGRvY3VtZW50IGlzIHBhc3N3b3JkIHByb3RlY3RlZC4gIFBsZWFzZSBlbnRlciBhIHBhc3N3b3JkLlBhc3N3b3JkIHJlcXVpcmVkRmFpbGVkIHRvIGxvYWQgUERGIGRvY3VtZW50LlJvdGF0ZSBjbG9ja3dpc2VEb3dubG9hZEZpdCB0byB3aWR0aFpvb20gaW5ab29tIG91dFBhZ2UgbnVtYmVye0NPVU5ULCBwbHVyYWwsCiAgICAgICAgID0xIHtQYWdlIDF9CiAgICAgICAgIG90aGVyIHtQYWdlICN9fVBoeXNpY2FsIFdlYk5vIFBoeXNpY2FsIFdlYiBwYWdlcyB0byBzaG93TG9va2luZyBmb3IgbmVhcmJ5IFBoeXNpY2FsIFdlYiBwYWdlc1JlcXVlc3Qgc3VjY2VlZGVkSW52YWxpZCByZXF1ZXN0IG9yIHJlcXVlc3QgcGFyYW1ldGVyc1RlbXBvcmFyeSBzZXJ2ZXIgZXJyb3JIVFRQIGVycm9yRmFpbGVkIHRvIGRlY29kZSByZXNwb25zZU1hbmFnZW1lbnQgbm90IHN1cHBvcnRlZE1pc3NpbmcgZGV2aWNlIHJlY29yZEludmFsaWQgZGV2aWNlIG1hbmFnZW1lbnQgdG9rZW5BY3RpdmF0aW9uIGlzIHBlbmRpbmcgb24gdGhlIHNlcnZlckRldmljZSBzZXJpYWwgbnVtYmVyIGlzIGludmFsaWRDb25mbGljdGluZyBkZXZpY2UgaWRlbnRpZmllckxpY2Vuc2VzIGV4aGF1c3RlZERlcHJvdmlzaW9uZWRQb2xpY3kgbm90IGZvdW5kRG9tYWluIG1pc21hdGNoUmVxdWVzdCBjb3VsZCBub3QgYmUgc2lnbmVkVmFsaWRhdGlvbiBzdWNjZXNzZnVsQmFkIGluaXRpYWwgc2lnbmF0dXJlQmFkIHNpZ25hdHVyZUVycm9yIGNvZGUgcHJlc2VudCBpbiB0aGUgcG9saWN5IHJlc3BvbnNlRXJyb3IgcGFyc2luZyBwb2xpY3lXcm9uZyBwb2xpY3kgdHlwZVdyb25nIGVudGl0eSBpZGVudGlmaWVyQmFkIHBvbGljeSB0aW1lc3RhbXBSZXR1cm5lZCBwb2xpY3kgdG9rZW4gaXMgZW1wdHkgb3IgZG9lc24ndCBtYXRjaCBjdXJyZW50IHRva2VuUmV0dXJuZWQgcG9saWN5IGRldmljZSBpZCBpcyBlbXB0eSBvciBkb2Vzbid0IG1hdGNoIGN1cnJlbnQgZGV2aWNlIGlkV3JvbmcgcG9saWN5IHN1YmplY3RFcnJvciBwYXJzaW5nIHBvbGljeSBzZXR0aW5nc0JhZCB2ZXJpZmljYXRpb24gc2lnbmF0dXJlUG9saWN5IGNhY2hlIE9LRmFpbGVkIHRvIGxvYWQgcG9saWN5IHNldHRpbmdzRmFpbGVkIHRvIHN0b3JlIHBvbGljeSBzZXR0aW5nc1BvbGljeSBwYXJzZSBlcnJvclNlcmlhbGl6YXRpb24gZXJyb3JWYWxpZGF0aW9uIGVycm9yOiAkMUJhY2tpbmcgc3RvcmUgaW4gYmFkIHN0YXRlQWN0aXZlVW5tYW5hZ2VkRXhwZWN0ZWQgJDEgdmFsdWUuVmFsdWUgaXMgb3V0IG9mIHJhbmdlICQxLlZhbHVlIGRvZXNuJ3QgbWF0Y2ggZm9ybWF0Lklnbm9yZWQgYmVjYXVzZSBkZWZhdWx0IHNlYXJjaCBpcyBub3QgZW5hYmxlZCBieSBwb2xpY3kuTXVzdCBiZSBzcGVjaWZpZWQuS2V5ICIkMSI6ICQyTGlzdCBlbnRyeSAiJDEiOiAkMlNjaGVtYSB2YWxpZGF0aW9uIGVycm9yIGF0ICIkMSI6ICQySW52YWxpZCBzZWFyY2ggVVJMLkludmFsaWQgcHJveHkgbW9kZS5JbnZhbGlkIHVwZGF0ZSBVUkwgZm9yIGV4dGVuc2lvbiB3aXRoIElEICIkMSIuVXNlIG9mIGEgcHJveHkgaXMgZGlzYWJsZWQgYnV0IGFuIGV4cGxpY2l0IHByb3h5IGNvbmZpZ3VyYXRpb24gaXMgc3BlY2lmaWVkLlByb3h5IGlzIHNldCB0byBhdXRvIGNvbmZpZ3VyZWQuUHJveHkgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gdXNlIGEgLnBhYyBzY3JpcHQgVVJMLCBub3QgZml4ZWQgcHJveHkgc2VydmVycy5Qcm94eSBpcyBzZXQgdG8gdXNlIGZpeGVkIHByb3h5IHNlcnZlcnMsIG5vdCBhIC5wYWMgc2NyaXB0IFVSTC5TeXN0ZW0gcHJveHkgc2V0dGluZ3MgYXJlIHNldCB0byBiZSB1c2VkIGJ1dCBhbiBleHBsaWNpdCBwcm94eSBjb25maWd1cmF0aW9uIGlzIGFsc28gc3BlY2lmaWVkLkJvdGggZml4ZWQgcHJveHkgc2VydmVycyBhbmQgYSAucGFjIHNjcmlwdCBVUkwgYXJlIHNwZWNpZmllZC5OZWl0aGVyIGZpeGVkIHByb3h5IHNlcnZlcnMgbm9yIGEgLnBhYyBzY3JpcHQgVVJMIGFyZSBzcGVjaWZpZWQuSWdub3JlZCBiZWNhdXNlIGl0IHdhcyBvdmVycmlkZGVuIGJ5ICQxLlRoaXMgcG9saWN5IGhhcyBiZWVuIGRlcHJlY2F0ZWQuVGhpcyB2YWx1ZSBpcyBkZXByZWNhdGVkIGZvciB0aGlzIHBvbGljeS5Qb2xpY3kgbGV2ZWwgaXMgbm90IHN1cHBvcnRlZC5Ob3Qgc2V0LlVua25vd24gcG9saWN5LlBvbGljeSBtYW5hZ2VtZW50TG9hZCBzZXNzaW9uU2Vzc2lvbiBuYW1lVGhlcmUgd2FzIGEgcHJvYmxlbSBhY2Nlc3NpbmcgdGhlIHNlc3Npb24gZmlsZXMuIFNhdmluZyB0byBkaXNrIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4gUGxlYXNlIHJlbG9hZCB0aGUgcGFnZSB0byB0cnkgYWdhaW4uUGxlYXNlIGVudGVyIGEgdmFsaWQgc2Vzc2lvbiBuYW1lLlRoZSBmaWxlIHNlZW1zIHRvIGJlIGNvcnJ1cHRlZC4gQ2xpY2sgdGhlICdSZXNldCcgYnV0dG9uIHRvIHJlc2V0IHRoZSBzZXNzaW9uLlRoZSBzZXNzaW9uIHdpdGggdGhpcyBuYW1lIGlzIG5vdCB2YWxpZCBmb3IgZGVsZXRpb24uUG9saWNpZXNGaWx0ZXIgcG9saWNpZXMgYnkgbmFtZVJlbG9hZCBwb2xpY2llc0V4cG9ydCB0byBKU09OVXNpbmcgQ2hyb21lIGF0IHdvcms/IEJ1c2luZXNzZXMgY2FuIG1hbmFnZSBDaHJvbWUgc2V0dGluZ3MgZm9yIHRoZWlyIGVtcGxveWVlcy4gTGVhcm4gbW9yZURldmljZSBwb2xpY2llc1VzZXIgcG9saWNpZXNFbnJvbGxtZW50IGRvbWFpbjpEaXNwbGF5IGRvbWFpbjpDbGllbnQgSUQ6QXNzZXQgSUQ6QXNzaWduZWQgTG9jYXRpb246RGlyZWN0b3J5IEFQSSBJRDpMYXN0IGZldGNoZWQ6Tm90IFNwZWNpZmllZEZldGNoIGludGVydmFsOlN0YXR1czpTaG93IHBvbGljaWVzIHdpdGggbm8gdmFsdWUgc2V0Tm8gcG9saWNpZXMgc2V0QXBwbGllcyB0b0xldmVsUG9saWN5IG5hbWVQb2xpY3kgdmFsdWVTaG93IHZhbHVlSGlkZSB2YWx1ZUxlYXJuIG1vcmUgYWJvdXQgJDEgcG9saWN5Q3VycmVudCB1c2VyTWFjaGluZVJlY29tbWVuZGVkTWFuZGF0b3J5RW50ZXJwcmlzZSBkZWZhdWx0Q2xvdWRMb2NhbCBTZXJ2ZXJQbGF0Zm9ybVB1YmxpYyBzZXNzaW9uIG92ZXJyaWRlRnVsbCBBZG1pbiBBY2Nlc3NTeXN0ZW0gU2VjdXJpdHlTaGFyaW5nIHdpdGggV2Vic2l0ZXNTaGFyaW5nIHdpdGggQWRtaW5pc3RyYXRvckZpbHRlcmluZ0xvY2FsIERhdGEgQWNjZXNzU2hhcmluZyB3aXRoIEdvb2dsZVRoZSBTYWZlIEJyb3dzaW5nIHBhZ2UgaXMgdW5kZXIgY29uc3RydWN0aW9uLkhpZGUgYWR2YW5jZWRDYXB0aXZlIFBvcnRhbCBBdXRob3JpemF0aW9uQ29ubmVjdCB0byBuZXR3b3JrQ29ubmVjdCB0byBXaS1GaVRoZSBuZXR3b3JrIHlvdSBhcmUgdXNpbmcgbWF5IHJlcXVpcmUgeW91IHRvIHZpc2l0IDxzdHJvbmc+JDE8L3N0cm9uZz4uVGhlIFdpLUZpIHlvdSBhcmUgdXNpbmcgbWF5IHJlcXVpcmUgeW91IHRvIHZpc2l0IDxzdHJvbmc+JDE8L3N0cm9uZz4uVGhlIFdpLUZpIHlvdSBhcmUgdXNpbmcgKCQxKSBtYXkgcmVxdWlyZSB5b3UgdG8gdmlzaXQgPHN0cm9uZz4kMjwvc3Ryb25nPi5UaGUgbmV0d29yayB5b3UgYXJlIHVzaW5nIG1heSByZXF1aXJlIHlvdSB0byB2aXNpdCBpdHMgbG9naW4gcGFnZS5UaGUgV2ktRmkgeW91IGFyZSB1c2luZyBtYXkgcmVxdWlyZSB5b3UgdG8gdmlzaXQgaXRzIGxvZ2luIHBhZ2UuVGhlIFdpLUZpIHlvdSBhcmUgdXNpbmcgKCQxKSBtYXkgcmVxdWlyZSB5b3UgdG8gdmlzaXQgaXRzIGxvZ2luIHBhZ2UuQW4gYXBwbGljYXRpb24gaXMgc3RvcHBpbmcgQ2hyb21lIGZyb20gc2FmZWx5IGNvbm5lY3RpbmcgdG8gdGhpcyBzaXRlIiQxIiB3YXNu4oCZdCBpbnN0YWxsZWQgcHJvcGVybHkgb24geW91ciBjb21wdXRlciBvciBuZXR3b3JrLiBBc2sgeW91ciBJVCBhZG1pbmlzdHJhdG9yIHRvIHJlc29sdmUgdGhpcyBpc3N1ZS4iJDEiIHdhc27igJl0IGluc3RhbGxlZCBwcm9wZXJseSBvbiB5b3VyIGNvbXB1dGVyIG9yIHRoZSBuZXR3b3JrOgogICAgPHVsPgogICAgPGxpPlRyeSB1bmluc3RhbGxpbmcgb3IgZGlzYWJsaW5nICIkMSI8L2xpPgogICAgPGxpPlRyeSBjb25uZWN0aW5nIHRvIGFub3RoZXIgbmV0d29yazwvbGk+CiAgICA8L3VsPkEgcm9vdCBjZXJ0aWZpY2F0ZSBmb3IgIiQxIiBpcyByZXF1aXJlZCBidXQgaXNu4oCZdCBpbnN0YWxsZWQuIFlvdXIgSVQgYWRtaW5pc3RyYXRvciBzaG91bGQgbG9vayBhdCBjb25maWd1cmF0aW9uIGluc3RydWN0aW9ucyBmb3IgIiQxIiB0byBmaXggdGhpcyBwcm9ibGVtLiAkMiIkMSIgaXNu4oCZdCBjb25maWd1cmVkIGNvcnJlY3RseS4gVW5pbnN0YWxsaW5nICIkMSIgdXN1YWxseSBmaXhlcyB0aGUgcHJvYmxlbS4gJDJBcHBsaWNhdGlvbnMgdGhhdCBjYW4gY2F1c2UgdGhpcyBlcnJvciBpbmNsdWRlIGFudGl2aXJ1cywgZmlyZXdhbGwsIGFuZCB3ZWItZmlsdGVyaW5nIG9yIHByb3h5IHNvZnR3YXJlLkNsb2NrIGVycm9yWW91ciBjbG9jayBpcyBhaGVhZFlvdXIgY2xvY2sgaXMgYmVoaW5kVXBkYXRlIGRhdGUgYW5kIHRpbWVBIHByaXZhdGUgY29ubmVjdGlvbiB0byA8c3Ryb25nPiQxPC9zdHJvbmc+IGNhbid0IGJlIGVzdGFibGlzaGVkIGJlY2F1c2UgeW91ciBjb21wdXRlcidzIGRhdGUgYW5kIHRpbWUgKCQyKSBhcmUgaW5jb3JyZWN0LlRvIGVzdGFibGlzaCBhIHNlY3VyZSBjb25uZWN0aW9uLCB5b3VyIGNsb2NrIG5lZWRzIHRvIGJlIHNldCBjb3JyZWN0bHkuIFRoaXMgaXMgYmVjYXVzZSB0aGUgY2VydGlmaWNhdGVzIHRoYXQgd2Vic2l0ZXMgdXNlIHRvIGlkZW50aWZ5IHRoZW1zZWx2ZXMgYXJlIG9ubHkgdmFsaWQgZm9yIHNwZWNpZmljIHBlcmlvZHMgb2YgdGltZS4gU2luY2UgeW91ciBkZXZpY2UncyBjbG9jayBpcyBpbmNvcnJlY3QsIENocm9taXVtIGNhbm5vdCB2ZXJpZnkgdGhlc2UgY2VydGlmaWNhdGVzLlByaXZhY3kgZXJyb3JZb3VyIGNvbm5lY3Rpb24gaXMgbm90IHByaXZhdGVBdHRhY2tlcnMgbWlnaHQgYmUgdHJ5aW5nIHRvIHN0ZWFsIHlvdXIgaW5mb3JtYXRpb24gZnJvbSA8c3Ryb25nPiQxPC9zdHJvbmc+IChmb3IgZXhhbXBsZSwgcGFzc3dvcmRzLCBtZXNzYWdlcywgb3IgY3JlZGl0IGNhcmRzKS4gPGEgaHJlZj0iIyIgaWQ9ImxlYXJuLW1vcmUtbGluayI+TGVhcm4gbW9yZTwvYT5Tb2Z0d2FyZSBvbiB5b3VyIGNvbXB1dGVyIGlzIHN0b3BwaW5nIENocm9taXVtIGZyb20gc2FmZWx5IGNvbm5lY3RpbmcgdG8gdGhlIHdlYjxwPkZvbGxvdyB0aGVzZSBzdGVwcyB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHRoZSBzb2Z0d2FyZSBzbyB5b3UgY2FuIGdldCBvbiB0aGUgd2ViLiBZb3UnbGwgbmVlZCBhZG1pbmlzdHJhdG9yIHByaXZpbGVnZXMuPC9wPgoKICAgIDxvbD4KICAgIDxsaT5DbGljayA8c3Ryb25nPlN0YXJ0PC9zdHJvbmc+LCB0aGVuIHNlYXJjaCBmb3IgYW5kIHNlbGVjdCA8c3Ryb25nPiJWaWV3IGxvY2FsIHNlcnZpY2VzIjwvc3Ryb25nPgogICAgPGxpPlNlbGVjdCA8c3Ryb25nPlZpc3VhbERpc2NvdmVyeTwvc3Ryb25nPgogICAgPGxpPlVuZGVyIDxzdHJvbmc+U3RhcnR1cCB0eXBlPC9zdHJvbmc+LCBzZWxlY3QgPHN0cm9uZz5EaXNhYmxlZDwvc3Ryb25nPgogICAgPGxpPlVuZGVyIDxzdHJvbmc+U2VydmljZSBzdGF0dXM8L3N0cm9uZz4sIGNsaWNrIDxzdHJvbmc+U3RvcDwvc3Ryb25nPgogICAgPGxpPkNsaWNrIDxzdHJvbmc+QXBwbHk8L3N0cm9uZz4sIHRoZW4gY2xpY2sgPHN0cm9uZz5PSzwvc3Ryb25nPgogICAgPGxpPlZpc2l0IHRoZSA8YSBocmVmPSIjIiBpZD0ibGVhcm4tbW9yZS1saW5rIj5DaHJvbWUgaGVscCBjZW50ZXI8L2E+IHRvIGxlYXJuIGhvdyB0byBwZXJtYW5lbnRseSByZW1vdmUgdGhlIHNvZnR3YXJlIGZyb20geW91ciBjb21wdXRlcgogICAgPC9vbD5CYWNrIHRvIHNhZmV0eTxhIGhyZWY9IiMiIGlkPSJwcm9jZWVkLWxpbmsiPlByb2NlZWQgdG8gJDEgKHVuc2FmZSk8L2E+WW91IGNhbm5vdCB2aXNpdCAkMSByaWdodCBub3cgYmVjYXVzZSB0aGUgd2Vic2l0ZSB1c2VzIGNlcnRpZmljYXRlIHBpbm5pbmcuIE5ldHdvcmsgZXJyb3JzIGFuZCBhdHRhY2tzIGFyZSB1c3VhbGx5IHRlbXBvcmFyeSwgc28gdGhpcyBwYWdlIHdpbGwgcHJvYmFibHkgd29yayBsYXRlci5Zb3UgY2Fubm90IHZpc2l0ICQxIHJpZ2h0IG5vdyBiZWNhdXNlIHRoZSB3ZWJzaXRlIHVzZXMgSFNUUy4gTmV0d29yayBlcnJvcnMgYW5kIGF0dGFja3MgYXJlIHVzdWFsbHkgdGVtcG9yYXJ5LCBzbyB0aGlzIHBhZ2Ugd2lsbCBwcm9iYWJseSB3b3JrIGxhdGVyLllvdSBjYW5ub3QgdmlzaXQgJDEgcmlnaHQgbm93IGJlY2F1c2UgaXRzIGNlcnRpZmljYXRlIGhhcyBiZWVuIHJldm9rZWQuIE5ldHdvcmsgZXJyb3JzIGFuZCBhdHRhY2tzIGFyZSB1c3VhbGx5IHRlbXBvcmFyeSwgc28gdGhpcyBwYWdlIHdpbGwgcHJvYmFibHkgd29yayBsYXRlci4kMSBub3JtYWxseSB1c2VzIGVuY3J5cHRpb24gdG8gcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uLiBXaGVuIENocm9taXVtIHRyaWVkIHRvIGNvbm5lY3QgdG8gJDEgdGhpcyB0aW1lLCB0aGUgd2Vic2l0ZSBzZW50IGJhY2sgdW51c3VhbCBhbmQgaW5jb3JyZWN0IGNyZWRlbnRpYWxzLiBUaGlzIG1heSBoYXBwZW4gd2hlbiBhbiBhdHRhY2tlciBpcyB0cnlpbmcgdG8gcHJldGVuZCB0byBiZSAkMSwgb3IgYSBXaS1GaSBzaWduLWluIHNjcmVlbiBoYXMgaW50ZXJydXB0ZWQgdGhlIGNvbm5lY3Rpb24uIFlvdXIgaW5mb3JtYXRpb24gaXMgc3RpbGwgc2VjdXJlIGJlY2F1c2UgQ2hyb21pdW0gc3RvcHBlZCB0aGUgY29ubmVjdGlvbiBiZWZvcmUgYW55IGRhdGEgd2FzIGV4Y2hhbmdlZC5Zb3UgY2Fubm90IHZpc2l0ICQxIHJpZ2h0IG5vdyBiZWNhdXNlIHRoZSB3ZWJzaXRlIHNlbnQgc2NyYW1ibGVkIGNyZWRlbnRpYWxzIHRoYXQgQ2hyb21pdW0gY2Fubm90IHByb2Nlc3MuIE5ldHdvcmsgZXJyb3JzIGFuZCBhdHRhY2tzIGFyZSB1c3VhbGx5IHRlbXBvcmFyeSwgc28gdGhpcyBwYWdlIHdpbGwgcHJvYmFibHkgd29yayBsYXRlci5TZWN1cml0eSBlcnJvclRoZSBzaXRlIGFoZWFkIGNvbnRhaW5zIG1hbHdhcmVBdHRhY2tlcnMgY3VycmVudGx5IG9uIDxzdHJvbmc+JDE8L3N0cm9uZz4gbWlnaHQgYXR0ZW1wdCB0byBpbnN0YWxsIGRhbmdlcm91cyBwcm9ncmFtcyBvbiB5b3VyIGNvbXB1dGVyIHRoYXQgc3RlYWwgb3IgZGVsZXRlIHlvdXIgaW5mb3JtYXRpb24gKGZvciBleGFtcGxlLCBwaG90b3MsIHBhc3N3b3JkcywgbWVzc2FnZXMsIGFuZCBjcmVkaXQgY2FyZHMpLiA8YSBocmVmPSIjIiBpZD0ibGVhcm4tbW9yZS1saW5rIj5MZWFybiBtb3JlPC9hPkdvb2dsZSBTYWZlIEJyb3dzaW5nIHJlY2VudGx5IDxhIGhyZWY9IiMiIGlkPSJkaWFnbm9zdGljLWxpbmsiPmRldGVjdGVkIG1hbHdhcmU8L2E+IG9uICQxLiBXZWJzaXRlcyB0aGF0IGFyZSBub3JtYWxseSBzYWZlIGFyZSBzb21ldGltZXMgaW5mZWN0ZWQgd2l0aCBtYWx3YXJlLkdvb2dsZSBTYWZlIEJyb3dzaW5nIHJlY2VudGx5IDxhIGhyZWY9IiMiIGlkPSJkaWFnbm9zdGljLWxpbmsiPmRldGVjdGVkIG1hbHdhcmU8L2E+IG9uICQxLiBXZWJzaXRlcyB0aGF0IGFyZSBub3JtYWxseSBzYWZlIGFyZSBzb21ldGltZXMgaW5mZWN0ZWQgd2l0aCBtYWx3YXJlLiBUaGUgbWFsaWNpb3VzIGNvbnRlbnQgY29tZXMgZnJvbSAkMiwgYSBrbm93biBtYWx3YXJlIGRpc3RyaWJ1dG9yLklmIHlvdSB1bmRlcnN0YW5kIHRoZSByaXNrcyB0byB5b3VyIHNlY3VyaXR5LCB5b3UgbWF5IDxhIGhyZWY9IiMiIGlkPSJwcm9jZWVkLWxpbmsiPnZpc2l0IHRoaXMgdW5zYWZlIHNpdGU8L2E+IGJlZm9yZSB0aGUgZGFuZ2Vyb3VzIHByb2dyYW1zIGhhdmUgYmVlbiByZW1vdmVkLlByaXZhY3kgcG9saWN5PGEgaHJlZj0iIyIgaWQ9IndoaXRlcGFwZXItbGluayI+QXV0b21hdGljYWxseSByZXBvcnQ8L2E+IGRldGFpbHMgb2YgcG9zc2libGUgc2VjdXJpdHkgaW5jaWRlbnRzIHRvIEdvb2dsZS4gJDFBdXRvbWF0aWNhbGx5IHNlbmQgc29tZSA8YSBocmVmPSIjIiBpZD0id2hpdGVwYXBlci1saW5rIj5zeXN0ZW0gaW5mb3JtYXRpb24gYW5kIHBhZ2UgY29udGVudDwvYT4gdG8gR29vZ2xlIHRvIGhlbHAgZGV0ZWN0IGRhbmdlcm91cyBhcHBzIGFuZCBzaXRlcy4gJDFUaGUgc2l0ZSBhaGVhZCBjb250YWlucyBoYXJtZnVsIHByb2dyYW1zQXR0YWNrZXJzIG9uIDxzdHJvbmc+JDE8L3N0cm9uZz4gbWlnaHQgYXR0ZW1wdCB0byB0cmljayB5b3UgaW50byBpbnN0YWxsaW5nIHByb2dyYW1zIHRoYXQgaGFybSB5b3VyIGJyb3dzaW5nIGV4cGVyaWVuY2UgKGZvciBleGFtcGxlLCBieSBjaGFuZ2luZyB5b3VyIGhvbWVwYWdlIG9yIHNob3dpbmcgZXh0cmEgYWRzIG9uIHNpdGVzIHlvdSB2aXNpdCkuIDxhIGhyZWY9IiMiIGlkPSJsZWFybi1tb3JlLWxpbmsiPkxlYXJuIG1vcmU8L2E+R29vZ2xlIFNhZmUgQnJvd3NpbmcgcmVjZW50bHkgPGEgaHJlZj0iIyIgaWQ9ImRpYWdub3N0aWMtbGluayI+Zm91bmQgaGFybWZ1bCBwcm9ncmFtczwvYT4gb24gJDEuSWYgeW91IHVuZGVyc3RhbmQgdGhlIHJpc2tzIHRvIHlvdXIgc2VjdXJpdHksIHlvdSBtYXkgPGEgaHJlZj0iIyIgaWQ9InByb2NlZWQtbGluayI+dmlzaXQgdGhpcyBzaXRlPC9hPiBiZWZvcmUgdGhlIGhhcm1mdWwgcHJvZ3JhbXMgaGF2ZSBiZWVuIHJlbW92ZWQuRGVjZXB0aXZlIHNpdGUgYWhlYWRBdHRhY2tlcnMgb24gPHN0cm9uZz4kMTwvc3Ryb25nPiBtYXkgdHJpY2sgeW91IGludG8gZG9pbmcgc29tZXRoaW5nIGRhbmdlcm91cyBsaWtlIGluc3RhbGxpbmcgc29mdHdhcmUgb3IgcmV2ZWFsaW5nIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gKGZvciBleGFtcGxlLCBwYXNzd29yZHMsIHBob25lIG51bWJlcnMsIG9yIGNyZWRpdCBjYXJkcykuIDxhIGhyZWY9IiMiIGlkPSJsZWFybi1tb3JlLWxpbmsiPkxlYXJuIG1vcmU8L2E+R29vZ2xlIFNhZmUgQnJvd3NpbmcgcmVjZW50bHkgPGEgaHJlZj0iIyIgaWQ9ImRpYWdub3N0aWMtbGluayI+ZGV0ZWN0ZWQgcGhpc2hpbmc8L2E+IG9uICQxLiBQaGlzaGluZyBzaXRlcyBwcmV0ZW5kIHRvIGJlIG90aGVyIHdlYnNpdGVzIHRvIHRyaWNrIHlvdS5Zb3UgY2FuIDxhIGhyZWY9IiMiIGlkPSJyZXBvcnQtZXJyb3ItbGluayI+cmVwb3J0IGEgZGV0ZWN0aW9uIHByb2JsZW08L2E+IG9yLCBpZiB5b3UgdW5kZXJzdGFuZCB0aGUgcmlza3MgdG8geW91ciBzZWN1cml0eSwgPGEgaHJlZj0iIyIgaWQ9InByb2NlZWQtbGluayI+dmlzaXQgdGhpcyB1bnNhZmUgc2l0ZTwvYT4uRGFuZ2Vyb3VzIGNvbnRlbnQgYmxvY2tlZC5UaGlzIGNvbnRlbnQgbWlnaHQgdHJ5IHRvIGluc3RhbGwgZGFuZ2Vyb3VzIHNvZnR3YXJlIG9uIHlvdXIgZGV2aWNlIHRoYXQgc3RlYWxzIG9yIGRlbGV0ZXMgeW91ciBpbmZvcm1hdGlvbi4gPGEgaHJlZj0iIyIgaWQ9InByb2NlZWQtbGluayI+U2hvdyBhbnl3YXk8L2E+RGVjZXB0aXZlIGNvbnRlbnQgYmxvY2tlZC5UaGlzIGNvbnRlbnQgbWlnaHQgdHJ5IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgc29mdHdhcmUgb3IgcmV2ZWFsaW5nIHBlcnNvbmFsIGluZm9ybWF0aW9uLiA8YSBocmVmPSIjIiBpZD0icHJvY2VlZC1saW5rIj5TaG93IGFueXdheTwvYT5Qcml2YXRlIHVzZXIgZGF0YSBpbnB1dFRoaXMgcGFnZSBpbmNsdWRlcyBhIHBhc3N3b3JkIG9yIGNyZWRpdCBjYXJkIGlucHV0IG92ZXIgSFRUUC4gQSB3YXJuaW5nIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBVUkwgYmFyLk5vbi1zZWN1cmUgcGFnZSBsb2FkZWQgaW4gaW5jb2duaXRvIG1vZGVUaGlzIHBhZ2Ugd2FzIGxvYWRlZCBub24tc2VjdXJlbHkgaW4gYW4gaW5jb2duaXRvIHdpbmRvdy4gQSB3YXJuaW5nIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBVUkwgYmFyLkZvcm0gZmllbGQgZWRpdGVkIG9uIGEgbm9uLXNlY3VyZSBwYWdlRGF0YSB3YXMgZW50ZXJlZCBpbiBhIHRleHQgZmllbGQgb24gYSBub24tc2VjdXJlIHBhZ2UuIEEgd2FybmluZyBoYXMgYmVlbiBhZGRlZCB0byB0aGUgVVJMIGJhci5UaGlzIHBhZ2UgaXMgZGFuZ2Vyb3VzIChmbGFnZ2VkIGJ5IEdvb2dsZSBTYWZlIEJyb3dzaW5nKS5GbGFnZ2VkIGJ5IEdvb2dsZSBTYWZlIEJyb3dzaW5nVG8gY2hlY2sgdGhpcyBwYWdlJ3Mgc3RhdHVzLCB2aXNpdCBnLmNvL3NhZmVicm93c2luZ3N0YXR1cy5pbnNlY3VyZSAoU0hBLTEpU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lIG1pc3NpbmdUaGUgY2VydGlmaWNhdGUgZm9yIHRoaXMgc2l0ZSBkb2VzIG5vdCBjb250YWluIGEgU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lIGV4dGVuc2lvbiBjb250YWluaW5nIGEgZG9tYWluIG5hbWUgb3IgSVAgYWRkcmVzcy5taXNzaW5nVGhpcyBzaXRlIGlzIG1pc3NpbmcgYSB2YWxpZCwgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSAoJDEpLnZhbGlkIGFuZCB0cnVzdGVkVGhlIGNvbm5lY3Rpb24gdG8gdGhpcyBzaXRlIGlzIHVzaW5nIGEgdmFsaWQsIHRydXN0ZWQgc2VydmVyIGNlcnRpZmljYXRlIGlzc3VlZCBieSAkMS5DZXJ0aWZpY2F0ZSBleHBpcmVzIHNvb25UaGUgY2VydGlmaWNhdGUgZm9yIHRoaXMgc2l0ZSBleHBpcmVzIGluIGxlc3MgdGhhbiA0OCBob3VycyBhbmQgbmVlZHMgdG8gYmUgcmVuZXdlZC5Db25uZWN0aW9uc2VjdXJlIChzdHJvbmcgJDEpUHVibGljLUtleS1QaW5uaW5nIGJ5cGFzc2VkUHVibGljLUtleS1QaW5uaW5nIHdhcyBieXBhc3NlZCBieSBhIGxvY2FsIHJvb3QgY2VydGlmaWNhdGUuVGhlIGNvbm5lY3Rpb24gdG8gdGhpcyBzaXRlIGlzIGVuY3J5cHRlZCBhbmQgYXV0aGVudGljYXRlZCB1c2luZyAkMSAoYSBzdHJvbmcgcHJvdG9jb2wpLCAkMiAoYSBzdHJvbmcga2V5IGV4Y2hhbmdlKSwgYW5kICQzIChhIHN0cm9uZyBjaXBoZXIpLm9ic29sZXRlIGNvbm5lY3Rpb24gc2V0dGluZ3NUaGUgY29ubmVjdGlvbiB0byB0aGlzIHNpdGUgdXNlcyAkMSAoJDIpLCAkMyAoJDQpLCBhbmQgJDUgKCQ2KS4kMSB3aXRoICQyYW4gb2Jzb2xldGUgcHJvdG9jb2xhIHN0cm9uZyBwcm90b2NvbGFuIG9ic29sZXRlIGtleSBleGNoYW5nZWEgc3Ryb25nIGtleSBleGNoYW5nZWFuIG9ic29sZXRlIGNpcGhlcmEgc3Ryb25nIGNpcGhlclJlc291cmNlc2FsbCBzZXJ2ZWQgc2VjdXJlbHlBbGwgcmVzb3VyY2VzIG9uIHRoaXMgcGFnZSBhcmUgc2VydmVkIHNlY3VyZWx5Lm1peGVkIGNvbnRlbnRUaGlzIHBhZ2UgaW5jbHVkZXMgSFRUUCByZXNvdXJjZXMuYWN0aXZlIG1peGVkIGNvbnRlbnRZb3UgaGF2ZSByZWNlbnRseSBhbGxvd2VkIG5vbi1zZWN1cmUgY29udGVudCAoc3VjaCBhcyBzY3JpcHRzIG9yIGlmcmFtZXMpIHRvIHJ1biBvbiB0aGlzIHNpdGUuY29udGVudCB3aXRoIGNlcnRpZmljYXRlIGVycm9yc1RoaXMgcGFnZSBpbmNsdWRlcyByZXNvdXJjZXMgdGhhdCB3ZXJlIGxvYWRlZCB3aXRoIGNlcnRpZmljYXRlIGVycm9ycy5hY3RpdmUgY29udGVudCB3aXRoIGNlcnRpZmljYXRlIGVycm9yc1lvdSBoYXZlIHJlY2VudGx5IGFsbG93ZWQgY29udGVudCBsb2FkZWQgd2l0aCBjZXJ0aWZpY2F0ZSBlcnJvcnMgKHN1Y2ggYXMgc2NyaXB0cyBvciBpZnJhbWVzKSB0byBydW4gb24gdGhpcyBzaXRlLm5vbi1zZWN1cmUgZm9ybVRoaXMgcGFnZSBpbmNsdWRlcyBhIGZvcm0gd2l0aCBhIG5vbi1zZWN1cmUgImFjdGlvbiIgYXR0cmlidXRlLlRoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+JDE8L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBkb2VzIG5vdCBzcGVjaWZ5IFN1YmplY3QgQWx0ZXJuYXRpdmUgTmFtZXMuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi5UaGlzIHNlcnZlciBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCBpcyA8c3Ryb25nPiQxPC9zdHJvbmc+OyBpdHMgc2VjdXJpdHkgY2VydGlmaWNhdGUgaXMgZnJvbSA8c3Ryb25nPiQyPC9zdHJvbmc+LiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24uU2VydmVyJ3MgY2VydGlmaWNhdGUgZG9lcyBub3QgbWF0Y2ggdGhlIFVSTC57MSwgcGx1cmFsLAogICAgID0xIHtUaGlzIHNlcnZlciBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCBpcyA8c3Ryb25nPnswfTwvc3Ryb25nPjsgaXRzIHNlY3VyaXR5IGNlcnRpZmljYXRlIGV4cGlyZWQgeWVzdGVyZGF5LiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24uIFlvdXIgY29tcHV0ZXIncyBjbG9jayBpcyBjdXJyZW50bHkgc2V0IHRvIHsyLCBkYXRlLCBmdWxsfS4gRG9lcyB0aGF0IGxvb2sgcmlnaHQ/IElmIG5vdCwgeW91IHNob3VsZCBjb3JyZWN0IHlvdXIgc3lzdGVtJ3MgY2xvY2sgYW5kIHRoZW4gcmVmcmVzaCB0aGlzIHBhZ2UufQogICAgIG90aGVyIHtUaGlzIHNlcnZlciBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCBpcyA8c3Ryb25nPnswfTwvc3Ryb25nPjsgaXRzIHNlY3VyaXR5IGNlcnRpZmljYXRlIGV4cGlyZWQgIyBkYXlzIGFnby4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGEgbWlzY29uZmlndXJhdGlvbiBvciBhbiBhdHRhY2tlciBpbnRlcmNlcHRpbmcgeW91ciBjb25uZWN0aW9uLiBZb3VyIGNvbXB1dGVyJ3MgY2xvY2sgaXMgY3VycmVudGx5IHNldCB0byB7MiwgZGF0ZSwgZnVsbH0uIERvZXMgdGhhdCBsb29rIHJpZ2h0PyBJZiBub3QsIHlvdSBzaG91bGQgY29ycmVjdCB5b3VyIHN5c3RlbSdzIGNsb2NrIGFuZCB0aGVuIHJlZnJlc2ggdGhpcyBwYWdlLn19U2VydmVyJ3MgY2VydGlmaWNhdGUgaGFzIGV4cGlyZWQuezEsIHBsdXJhbCwKICAgICA9MSB7VGhpcyBzZXJ2ZXIgY291bGQgbm90IHByb3ZlIHRoYXQgaXQgaXMgPHN0cm9uZz57MH08L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBpcyBzdXBwb3NlZGx5IGZyb20gdG9tb3Jyb3cuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi59CiAgICAgb3RoZXIge1RoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+ezB9PC9zdHJvbmc+OyBpdHMgc2VjdXJpdHkgY2VydGlmaWNhdGUgaXMgc3VwcG9zZWRseSBmcm9tICMgZGF5cyBpbiB0aGUgZnV0dXJlLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24ufX1TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBpcyBub3QgeWV0IHZhbGlkLlRoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+JDE8L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBpcyBub3QgdmFsaWQgYXQgdGhpcyB0aW1lLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24uU2VydmVyJ3MgY2VydGlmaWNhdGUgaXMgbm90IHZhbGlkIGF0IHRoaXMgdGltZS5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBpcyBub3QgdHJ1c3RlZC5UaGlzIHNlcnZlciBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCBpcyA8c3Ryb25nPiQxPC9zdHJvbmc+OyBpdHMgc2VjdXJpdHkgY2VydGlmaWNhdGUgY29udGFpbnMgZXJyb3JzLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24uU2VydmVyJ3MgY2VydGlmaWNhdGUgY29udGFpbnMgZXJyb3JzLlRoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+JDE8L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBtaWdodCBiZSByZXZva2VkLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24uU2VydmVyJ3MgY2VydGlmaWNhdGUgY2Fubm90IGJlIGNoZWNrZWQuTm8gcmV2b2NhdGlvbiBtZWNoYW5pc20gZm91bmQuWW91IGF0dGVtcHRlZCB0byByZWFjaCA8c3Ryb25nPiQxPC9zdHJvbmc+LCBidXQgdGhlIGNlcnRpZmljYXRlIHRoYXQgdGhlIHNlcnZlciBwcmVzZW50ZWQgaGFzIGJlZW4gcmV2b2tlZCBieSBpdHMgaXNzdWVyLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHNlY3VyaXR5IGNyZWRlbnRpYWxzIHRoZSBzZXJ2ZXIgcHJlc2VudGVkIGFic29sdXRlbHkgc2hvdWxkIG5vdCBiZSB0cnVzdGVkLiBZb3UgbWF5IGJlIGNvbW11bmljYXRpbmcgd2l0aCBhbiBhdHRhY2tlci5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiByZXZva2VkLllvdSBhdHRlbXB0ZWQgdG8gcmVhY2ggPHN0cm9uZz4kMTwvc3Ryb25nPiwgYnV0IHRoZSBzZXJ2ZXIgcHJlc2VudGVkIGFuIGludmFsaWQgY2VydGlmaWNhdGUuU2VydmVyJ3MgY2VydGlmaWNhdGUgaXMgaW52YWxpZC5Zb3UgYXR0ZW1wdGVkIHRvIHJlYWNoIDxzdHJvbmc+JDE8L3N0cm9uZz4sIGJ1dCB0aGUgc2VydmVyIHByZXNlbnRlZCBhIGNlcnRpZmljYXRlIHNpZ25lZCB1c2luZyBhIHdlYWsgc2lnbmF0dXJlIGFsZ29yaXRobSAoc3VjaCBhcyBTSEEtMSkuIFRoaXMgbWVhbnMgdGhhdCB0aGUgc2VjdXJpdHkgY3JlZGVudGlhbHMgdGhlIHNlcnZlciBwcmVzZW50ZWQgY291bGQgaGF2ZSBiZWVuIGZvcmdlZCwgYW5kIHRoZSBzZXJ2ZXIgbWF5IG5vdCBiZSB0aGUgc2VydmVyIHlvdSBleHBlY3RlZCAoeW91IG1heSBiZSBjb21tdW5pY2F0aW5nIHdpdGggYW4gYXR0YWNrZXIpLlNlcnZlcidzIGNlcnRpZmljYXRlIGlzIHNpZ25lZCB1c2luZyBhIHdlYWsgc2lnbmF0dXJlIGFsZ29yaXRobS5Zb3UgYXR0ZW1wdGVkIHRvIHJlYWNoIDxzdHJvbmc+JDE8L3N0cm9uZz4sIGJ1dCB0aGUgc2VydmVyIHByZXNlbnRlZCBhIGNlcnRpZmljYXRlIGNvbnRhaW5pbmcgYSB3ZWFrIGtleS4gQW4gYXR0YWNrZXIgY291bGQgaGF2ZSBicm9rZW4gdGhlIHByaXZhdGUga2V5LCBhbmQgdGhlIHNlcnZlciBtYXkgbm90IGJlIHRoZSBzZXJ2ZXIgeW91IGV4cGVjdGVkICh5b3UgbWF5IGJlIGNvbW11bmljYXRpbmcgd2l0aCBhbiBhdHRhY2tlcikuVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjb250YWlucyBhIHdlYWsgY3J5cHRvZ3JhcGhpYyBrZXkuVGhpcyBzZXJ2ZXIgY291bGQgbm90IHByb3ZlIHRoYXQgaXQgaXMgPHN0cm9uZz4kMTwvc3Ryb25nPjsgaXRzIHNlY3VyaXR5IGNlcnRpZmljYXRlIG1pZ2h0IGhhdmUgYmVlbiBpc3N1ZWQgZnJhdWR1bGVudGx5LiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24uU2VydmVyJ3MgY2VydGlmaWNhdGUgdmlvbGF0ZXMgbmFtZSBjb25zdHJhaW50cy5Zb3UgYXR0ZW1wdGVkIHRvIHJlYWNoIDxzdHJvbmc+JDE8L3N0cm9uZz4sIGJ1dCB0aGUgc2VydmVyIHByZXNlbnRlZCBhIGNlcnRpZmljYXRlIHdob3NlIHZhbGlkaXR5IHBlcmlvZCBpcyB0b28gbG9uZyB0byBiZSB0cnVzdHdvcnRoeS5UaGUgc2VydmVyIGNlcnRpZmljYXRlIGhhcyBhIHZhbGlkaXR5IHBlcmlvZCB0aGF0IGlzIHRvbyBsb25nLkFuIHVua25vd24gZXJyb3IgaGFzIG9jY3VycmVkLlVua25vd24gc2VydmVyIGNlcnRpZmljYXRlIGVycm9yLlRoZSBzZXJ2ZXIgcHJlc2VudGVkIGEgY2VydGlmaWNhdGUgdGhhdCBkb2Vzbid0IG1hdGNoIGJ1aWx0LWluIGV4cGVjdGF0aW9ucy4gVGhlc2UgZXhwZWN0YXRpb25zIGFyZSBpbmNsdWRlZCBmb3IgY2VydGFpbiwgaGlnaC1zZWN1cml0eSB3ZWJzaXRlcyBpbiBvcmRlciB0byBwcm90ZWN0IHlvdS5UaGUgc2VydmVyJ3MgY2VydGlmaWNhdGUgYXBwZWFycyB0byBiZSBhIGZvcmdlcnkuVGhlIHNlcnZlciBwcmVzZW50ZWQgYSBjZXJ0aWZpY2F0ZSB0aGF0IHdhcyBub3QgcHVibGljbHkgZGlzY2xvc2VkIHVzaW5nIHRoZSBDZXJ0aWZpY2F0ZSBUcmFuc3BhcmVuY3kgcG9saWN5LiBUaGlzIGlzIGEgcmVxdWlyZW1lbnQgZm9yIHNvbWUgY2VydGlmaWNhdGVzLCB0byBlbnN1cmUgdGhhdCB0aGV5IGFyZSB0cnVzdHdvcnRoeSBhbmQgcHJvdGVjdCBhZ2FpbnN0IGF0dGFja2Vycy5UaGUgc2VydmVyJ3MgY2VydGlmaWNhdGUgd2FzIG5vdCBkaXNjbG9zZWQgdmlhIENlcnRpZmljYXRlIFRyYW5zcGFyZW5jeS5UaGlzIHNlcnZlciBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCBpcyA8c3Ryb25nPiQxPC9zdHJvbmc+OyBpdHMgc2VjdXJpdHkgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQgYnkgeW91ciBjb21wdXRlcidzIG9wZXJhdGluZyBzeXN0ZW0uIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi5TaXRlIGJsb2NrZWRZb3UgbmVlZCBwZXJtaXNzaW9uIGZyb20gJDEgdG8gdmlzaXQgdGhpcyBzaXRlQXNrIHlvdXIgcGFyZW50WW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aXNpdCB0aGlzIHNpdGVQbGVhc2Ugc3RhcnQgYW5kIHNpZ24gaW4gdG8gQ2hyb21lIGJlZm9yZSB1c2luZyB0aGlzIGFwcC5Zb3UgbmVlZCBwZXJtaXNzaW9uIHRvIHZpc2l0IHRoaXMgc2l0ZVF1ZXN0aW9ucz8gQ29udGFjdCB0aGUgcGVyc29uIHdobyBzdXBlcnZpc2VzIHlvdXIgcHJvZmlsZS5HbyBiYWNrQXNrIHBlcm1pc3Npb25Zb3VyIHJlcXVlc3QgdG8gYWNjZXNzIHRoaXMgc2l0ZSBoYXMgYmVlbiBzZW50IHRvICQxWW91ciByZXF1ZXN0IHRvIGFjY2VzcyB0aGlzIHNpdGUgY291bGQgbm90IGJlIHNlbnQgdG8gJDEuIFBsZWFzZSB0cnkgYWdhaW4uWW91IGFza2VkIHlvdXIgcGFyZW50IGlmIGl0J3MgT0sgdG8gdmlzaXQgdGhpcyBzaXRlWW91IGFza2VkIHlvdXIgcGFyZW50cyBpZiBpdCdzIE9LIHRvIHZpc2l0IHRoaXMgc2l0ZVdlIGNvdWxkIG5vdCByZWFjaCB5b3VyIHBhcmVudCBhdCB0aGUgbW9tZW50LiBQbGVhc2UgdHJ5IGFnYWluLldlIGNvdWxkIG5vdCByZWFjaCB5b3VyIHBhcmVudHMgYXQgdGhlIG1vbWVudC4gUGxlYXNlIHRyeSBhZ2Fpbi5XYXMgdGhpcyB1bmV4cGVjdGVkPyA8YSBocmVmPSIjIiBpZD0iZmVlZGJhY2stbGluayI+TGV0IHVzIGtub3c8L2E+VGhpcyBzaXRlIGlzIGJsb2NrZWRZb3VyIHBhcmVudCBoYXNuJ3QgYXBwcm92ZWQgaXQgeWV0WW91ciBwYXJlbnRzIGhhdmVuJ3QgYXBwcm92ZWQgaXQgeWV0WW91ciBtYW5hZ2VyIGhhc24ndCBhcHByb3ZlZCBpdCB5ZXRJdCBtYXkgaGF2ZSBtYXR1cmUgY29udGVudFlvdXIgcGFyZW50IGNhbiB1bmJsb2NrIGl0IGZvciB5b3VZb3VyIHBhcmVudHMgY2FuIHVuYmxvY2sgaXQgZm9yIHlvdVlvdXIgbWFuYWdlciBjYW4gdW5ibG9jayBpdCBmb3IgeW91UGxlYXNlIHN0YXJ0IGFuZCBzaWduIGluIHRvIENocm9tZSBzbyB0aGF0IENocm9tZSBjYW4gY2hlY2sgd2hldGhlciB5b3UgYXJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoaXMgc2l0ZS5FbmNyeXB0IHN5bmNlZCBwYXNzd29yZHMgd2l0aCB5b3VyIEdvb2dsZSBjcmVkZW50aWFsc1BsZWFzZSB1cGRhdGUgeW91ciBzeW5jIHBhc3NwaHJhc2UuUmVhZGluZyBMaXN0RW1wdHkgcGFzc3BocmFzZSBpcyBub3QgYWxsb3dlZC5Zb3UgYWxyZWFkeSBoYXZlIGRhdGEgdGhhdCBpcyBlbmNyeXB0ZWQgdXNpbmcgYSBkaWZmZXJlbnQgdmVyc2lvbiBvZiB5b3VyIEdvb2dsZSBBY2NvdW50IHBhc3N3b3JkLiBQbGVhc2UgZW50ZXIgaXQgYmVsb3cuRW5jcnlwdCBhbGwgc3luY2VkIGRhdGEgd2l0aCB5b3VyIG93biBzeW5jIHBhc3NwaHJhc2VTZXR0aW5nIHVw4oCmWW91IG11c3QgZW50ZXIgdGhlIHNhbWUgcGFzc3BocmFzZSB0d2ljZS5TeW5jIGlzIG5vdCBhdmFpbGFibGUgZm9yIHlvdXIgZG9tYWluWW91ciBkYXRhIHdhcyBlbmNyeXB0ZWQgd2l0aCB5b3VyIHN5bmMgcGFzc3BocmFzZSBvbiAkMS4gRW50ZXIgaXQgdG8gc3RhcnQgc3luYy5Zb3VyIGRhdGEgaXMgZW5jcnlwdGVkIHdpdGggeW91ciBzeW5jIHBhc3NwaHJhc2UuIEVudGVyIGl0IHRvIHN0YXJ0IHN5bmMuTmV2ZXIgdHJhbnNsYXRlICQxTmV2ZXIgdHJhbnNsYXRlIHRoaXMgc2l0ZUFsd2F5cyB0cmFuc2xhdGUgJDEgdG8gJDJOb3QgaW4gJDE/IFJlcG9ydCB0aGlzIGVycm9yQWJvdXQgR29vZ2xlIFRyYW5zbGF0ZVRoaXMgcGFnZSBpcyBpbiQxV291bGQgeW91IGxpa2UgdG8gdHJhbnNsYXRlIGl0P1RyYW5zbGF0ZUFsd2F5cyB0cmFuc2xhdGUgJDFUcmFuc2xhdGluZyBwYWdlIHRvICQx4oCmVGhpcyBwYWdlIGhhcyBiZWVuIHRyYW5zbGF0ZWQgZnJvbSQxdG8kMlRoaXMgcGFnZSBoYXMgYmVlbiB0cmFuc2xhdGVkIHRvICQxVGhlIHRyYW5zbGF0aW9uIGZhaWxlZCBiZWNhdXNlIG9mIGEgcHJvYmxlbSB3aXRoIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24uVGhlIHRyYW5zbGF0aW9uIGZhaWxlZCBiZWNhdXNlIG9mIGEgc2VydmVyIGVycm9yLlRoZSB0cmFuc2xhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGUgcGFnZSdzIGxhbmd1YWdlIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLlRoZSB0cmFuc2xhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGUgcGFnZSBpcyBhbHJlYWR5IGluICQxLlRoaXMgcGFnZSBoYXMgYmVlbiB0cmFuc2xhdGVkIGZyb20gYW4gdW5rbm93biBsYW5ndWFnZSB0byAkMSZVbmRvIGFkZCZSZWRvIGFkZCZVbmRvIGRlbGV0ZSZSZWRvIGRlbGV0ZSZVbmRvIGVkaXQmUmVkbyBlZGl0JlVuZG8gbW92ZSZSZWRvIG1vdmUmVW5kbyByZW9yZGVyJlJlZG8gcmVvcmRlckFib3V0IFZlcnNpb25PZmZpY2lhbCBCdWlsZERldmVsb3BlciBCdWlsZCgzMi1iaXQpKDY0LWJpdClSZXZpc2lvbk9TVXNlciBBZ2VudENvbW1hbmQgTGluZUV4ZWN1dGFibGUgUGF0aFByb2ZpbGUgUGF0aE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlWYXJpYXRpb25zVGhpcyBwbHVnaW4gaXMgbm90IHN1cHBvcnRlZFJlY2VudGx5IGNsb3NlZENob29zZUZvcndhcmRPa0FkZHJlc3MgYW5kIHNlYXJjaCBiYXJKU09OIFBhcnNlck9wZW4gc3RhcnR1cCBwYWdlc1ByaXZhY3lUb2RheUNob29zZSBGaWxlc05vIGZpbGUgY2hvc2VuJDEgZmlsZXNPdGhlcuKApmRkbW15eXl5VGhpcyBtb250aFRoaXMgd2Vla1dlZWtTaG93IG1vbnRoIHNlbGVjdGlvbiBwYW5lbFNob3cgbmV4dCBtb250aFNob3cgcHJldmlvdXMgbW9udGgkMSwgc3RhcnRpbmcgb24gJDJhcnRpY2xlYmFubmVyY29tcGxlbWVudGFyeWNoZWNrYm94Y29udGVudCBpbmZvZGVmaW5pdGlvbmRlZmluaXRpb24gbGlzdHRlcm1kaXNjbG9zdXJlIHRyaWFuZ2xlZmVlZGZpZ3VyZWZvcm1mb290ZXJ0b2dnbGUgYnV0dG9uaGVhZGluZ2xpbmttYWluaGlnaGxpZ2h0ZWQgY29udGVudG1hdGhuYXZpZ2F0aW9ucmVnaW9uc2VhcmNoIHRleHQgZmllbGRzdGF0dXNzd2l0Y2hIVE1MIGNvbnRlbnRBTS9QTURheUhvdXJzbWVkaWEgY29udHJvbGF1ZGlvdmlkZW9tdXRldW5tdXRlcGxheXBhdXNlZWxhcHNlZCB0aW1lcmVtYWluaW5nIHRpbWVlbnRlciBmdWxsIHNjcmVlbmV4aXQgZnVsbCBzY3JlZW5zaG93IGNsb3NlZCBjYXB0aW9uc2hpZGUgY2xvc2VkIGNhcHRpb25zcGxheSBvbiByZW1vdGUgZGV2aWNlY29udHJvbCByZW1vdGUgcGxheWJhY2tkb3dubG9hZCBtZWRpYXNob3cgbW9yZSBtZWRpYSBjb250cm9sc211dGUgYXVkaW8gdHJhY2t1bm11dGUgYXVkaW8gdHJhY2tiZWdpbiBwbGF5YmFja3BhdXNlIHBsYXliYWNrYXVkaW8gdGltZSBzY3J1YmJlcm1vdmllIHRpbWUgc2NydWJiZXJjdXJyZW50IHRpbWUgaW4gc2Vjb25kc251bWJlciBvZiBzZWNvbmRzIG9mIG1vdmllIHJlbWFpbmluZ3BsYXkgbW92aWUgaW4gZnVsbCBzY3JlZW4gbW9kZXN0YXJ0IGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zc3RvcCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9uc21vcmUgb3B0aW9uc01pbGxpc2Vjb25kc01pbnV0ZXNTZWNvbmRzV2VlayAkMiwgJDFQbGVhc2Ugc2VsZWN0IG9uZSBvciBtb3JlIGZpbGVzLkludmFsaWQgdmFsdWUuUGxlYXNlIGVudGVyIGEgbm9uLWVtcHR5IGVtYWlsIGFkZHJlc3MuUGxlYXNlIGVudGVyIGEgcGFydCBmb2xsb3dpbmcgJyQxJy4gJyQyJyBpcyBpbmNvbXBsZXRlLlBsZWFzZSBlbnRlciBhIHBhcnQgZm9sbG93ZWQgYnkgJyQxJy4gJyQyJyBpcyBpbmNvbXBsZXRlLkEgcGFydCBmb2xsb3dpbmcgJyQxJyBzaG91bGQgbm90IGNvbnRhaW4gdGhlIHN5bWJvbCAnJDInLickMScgaXMgdXNlZCBhdCBhIHdyb25nIHBvc2l0aW9uIGluICckMicuQSBwYXJ0IGZvbGxvd2VkIGJ5ICckMScgc2hvdWxkIG5vdCBjb250YWluIHRoZSBzeW1ib2wgJyQyJy5QbGVhc2UgaW5jbHVkZSBhbiAnJDEnIGluIHRoZSBlbWFpbCBhZGRyZXNzLiAnJDInIGlzIG1pc3NpbmcgYW4gJyQxJy5QbGVhc2UgZW50ZXIgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuVmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJDEuVmFsdWUgbXVzdCBiZSAkMSBvciBsYXRlci5WYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkMS5WYWx1ZSBtdXN0IGJlICQxIG9yIGVhcmxpZXIuUGxlYXNlIGVudGVyIGEgdmFsaWQgdmFsdWUuIFRoZSBmaWVsZCBpcyBpbmNvbXBsZXRlIG9yIGhhcyBhbiBpbnZhbGlkIGRhdGUuUGxlYXNlIGVudGVyIGEgbnVtYmVyLlBsZWFzZSBmaWxsIG91dCB0aGlzIGZpZWxkLlBsZWFzZSBjaGVjayB0aGlzIGJveCBpZiB5b3Ugd2FudCB0byBwcm9jZWVkLlBsZWFzZSBzZWxlY3QgYSBmaWxlLlBsZWFzZSBzZWxlY3Qgb25lIG9mIHRoZXNlIG9wdGlvbnMuUGxlYXNlIHNlbGVjdCBhbiBpdGVtIGluIHRoZSBsaXN0LlBsZWFzZSBlbnRlciBhbiBlbWFpbCBhZGRyZXNzLlBsZWFzZSBlbnRlciBhIFVSTC5QbGVhc2UgbWF0Y2ggdGhlIHJlcXVlc3RlZCBmb3JtYXQuUGxlYXNlIGVudGVyIGEgdmFsaWQgdmFsdWUuIFRoZSB0d28gbmVhcmVzdCB2YWxpZCB2YWx1ZXMgYXJlICQxIGFuZCAkMi5QbGVhc2UgZW50ZXIgYSB2YWxpZCB2YWx1ZS4gVGhlIG5lYXJlc3QgdmFsaWQgdmFsdWUgaXMgJDEuUGxlYXNlIHNob3J0ZW4gdGhpcyB0ZXh0IHRvICQyIGNoYXJhY3RlcnMgb3IgbGVzcyAoeW91IGFyZSBjdXJyZW50bHkgdXNpbmcgJDEgY2hhcmFjdGVycykuUGxlYXNlIGxlbmd0aGVuIHRoaXMgdGV4dCB0byAkMiBjaGFyYWN0ZXJzIG9yIG1vcmUgKHlvdSBhcmUgY3VycmVudGx5IHVzaW5nIDEgY2hhcmFjdGVyKS5QbGVhc2UgbGVuZ3RoZW4gdGhpcyB0ZXh0IHRvICQyIGNoYXJhY3RlcnMgb3IgbW9yZSAoeW91IGFyZSBjdXJyZW50bHkgdXNpbmcgJDEgY2hhcmFjdGVycykuQ2FwdGlvbnNGdWxsc2NyZWVuRXhpdCBmdWxsc2NyZWVuTm93IGNhc3RpbmcgdG8gJDFOb3cgY2FzdGluZyB0byB5b3VyIFRWU3dpdGNoZWQgdG8gbWlycm9yaW5nUG9vciBwbGF5YmFjayBxdWFsaXR5VmlkZW8gcGxheWJhY2sgZXJyb3JUcmFjayAkMUNvdWxkbid0IGxvYWQgcGx1Z2luLiQxIEtCJDEgTUIkMSBHQiQxIFRCJDEgUEJVbmtub3duIG9yIFVuc3VwcG9ydGVkIERldmljZSAoJDEpQ29tcHV0ZXIgKCQxKVBob25lICgkMSlNb2RlbSAoJDEpQXVkaW8gKCQxKUNhciBhdWRpbyAoJDEpVmlkZW8gKCQxKUpveXN0aWNrICgkMSlHYW1lcGFkICgkMSlLZXlib2FyZCAoJDEpVGFibGV0ICgkMSlNb3VzZSAoJDEpS2V5Ym9hcmQvTW91c2UgKCQxKVRoaXMgZXh0ZW5zaW9uIGluY2x1ZGVzIHRoZSBrZXkgZmlsZSAnJDEnLiBZb3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBkbyB0aGF0LkNvdWxkIG5vdCBsb2FkIGFib3V0IHBhZ2UgJyQxJy5Db3VsZCBub3QgbG9hZCBiYWNrZ3JvdW5kIHNjcmlwdCAnJDEnLkNvdWxkIG5vdCBsb2FkIGJhY2tncm91bmQgcGFnZSAnJDEnLkNvdWxkIG5vdCBsb2FkIGV4dGVuc2lvbiBpY29uICckMScuQ291bGQgbm90IGxvYWQgb3B0aW9ucyBwYWdlICckMScuTG9jYWxpemF0aW9uIHVzZWQsIGJ1dCBkZWZhdWx0X2xvY2FsZSB3YXNuJ3Qgc3BlY2lmaWVkIGluIHRoZSBtYW5pZmVzdC5NYW5pZmVzdCBmaWxlIGlzIG1pc3Npbmcgb3IgdW5yZWFkYWJsZS5NYW5pZmVzdCBmaWxlIGlzIGludmFsaWQuQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgZm9yIHVuemlwcGluZzogJyQxJ0lsbGVnYWwgcGF0aCAoYWJzb2x1dGUgb3IgcmVsYXRpdmUgd2l0aCAnLi4nKTogJyQxJ0NvdWxkIG5vdCBkZWNvZGUgaW1hZ2U6ICckMSdDb3VsZCBub3QgdW56aXAgZXh0ZW5zaW9uZXh0ZW5zaW9uICQxJDEgKGV4dGVuc2lvbiBJRCAiJDIiKSBpcyBibG9ja2VkIGJ5IHRoZSBhZG1pbmlzdHJhdG9yLiAkM1RoZSBhZG1pbmlzdHJhdG9yIG9mIHRoaXMgbWFjaGluZSByZXF1aXJlcyAkMSB0byBiZSBpbnN0YWxsZWQuIEl0IGNhbm5vdCBiZSByZW1vdmVkIG9yIG1vZGlmaWVkLlRoZSBhZG1pbmlzdHJhdG9yIG9mIHRoaXMgbWFjaGluZSByZXF1aXJlcyAkMSB0byBiZSBpbnN0YWxsZWQuIEl0IGNhbm5vdCBiZSB1bmluc3RhbGxlZC5UaGUgYWRtaW5pc3RyYXRvciBvZiB0aGlzIG1hY2hpbmUgcmVxdWlyZXMgJDEgdG8gaGF2ZSBhIG1pbmltdW0gdmVyc2lvbiBvZiAkMi4gSXQgY2Fubm90IGJlIGVuYWJsZWQgdW50aWwgaXQgaGFzIHVwZGF0ZWQgdG8gdGhhdCB2ZXJzaW9uIChvciBoaWdoZXIpLiQxIChzZXJpYWwgbnVtYmVyICQyKSQxIGZyb20gdmVuZG9yICQyJDEgZnJvbSB2ZW5kb3IgJDIgKHNlcmlhbCBudW1iZXIgJDMpJDEgZnJvbSAkMiQxIGZyb20gJDIgKHNlcmlhbCBudW1iZXIgJDMpVW5rbm93biBwcm9kdWN0ICQxIGZyb20gdmVuZG9yICQyVW5rbm93biBwcm9kdWN0ICQxIGZyb20gdmVuZG9yICQyIChzZXJpYWwgbnVtYmVyICQzKVVua25vd24gcHJvZHVjdCAkMSBmcm9tICQyVW5rbm93biBwcm9kdWN0ICQxIGZyb20gJDIgKHNlcmlhbCBudW1iZXIgJDMpIiQxIiBpcyByZXF1ZXN0aW5nIGFjY2VzcyB0byBvbmUgb2YgeW91ciBkZXZpY2VzOiIkMSIgaXMgcmVxdWVzdGluZyBhY2Nlc3MgdG8gb25lIG9yIG1vcmUgb2YgeW91ciBkZXZpY2VzOlVzZXItZmFjaW5nRW52aXJvbm1lbnQtZmFjaW5nQXBwdmlldzogJDFPcHRpb25zOiAkMUV4dGVuc2lvblZpZXc6ICQxTWltZWhhbmRsZXI6ICQxV2VidmlldzogJDFUaGlzIGV4dGVuc2lvbiBpcyBzbG93aW5nIGRvd24gJDEuIFlvdSBzaG91bGQgZGlzYWJsZSBpdCB0byByZXN0b3JlICQxJ3MgcGVyZm9ybWFuY2UuVGhpcyBleHRlbnNpb24gZmFpbGVkIHRvIG1vZGlmeSBhIG5ldHdvcmsgcmVxdWVzdCBiZWNhdXNlIHRoZSBtb2RpZmljYXRpb24gY29uZmxpY3RlZCB3aXRoIGFub3RoZXIgZXh0ZW5zaW9uLlRoaXMgZXh0ZW5zaW9uIGZhaWxlZCB0byByZWRpcmVjdCBhIG5ldHdvcmsgcmVxdWVzdCB0byAkMSBiZWNhdXNlIGFub3RoZXIgZXh0ZW5zaW9uICgkMikgcmVkaXJlY3RlZCBpdCB0byAkMy5UaGlzIGV4dGVuc2lvbiBmYWlsZWQgdG8gbW9kaWZ5IHRoZSByZXF1ZXN0IGhlYWRlciAiJDEiIG9mIGEgbmV0d29yayByZXF1ZXN0IGJlY2F1c2UgdGhlIG1vZGlmaWNhdGlvbiBjb25mbGljdGVkIHdpdGggYW5vdGhlciBleHRlbnNpb24gKCQyKS5UaGlzIGV4dGVuc2lvbiBmYWlsZWQgdG8gbW9kaWZ5IHRoZSByZXNwb25zZSBoZWFkZXIgIiQxIiBvZiBhIG5ldHdvcmsgcmVxdWVzdCBiZWNhdXNlIHRoZSBtb2RpZmljYXRpb24gY29uZmxpY3RlZCB3aXRoIGFub3RoZXIgZXh0ZW5zaW9uICgkMikuVGhpcyBleHRlbnNpb24gZmFpbGVkIHRvIHByb3ZpZGUgY3JlZGVudGlhbHMgdG8gYSBuZXR3b3JrIHJlcXVlc3QgYmVjYXVzZSBhbm90aGVyIGV4dGVuc2lvbiAoJDEpIHByb3ZpZGVkIGRpZmZlcmVudCBjcmVkZW50aWFscy5UaGlzIGV4dGVuc2lvbiBmYWlsZWQgdG8gbmFtZSB0aGUgZG93bmxvYWQgIiQxIiBiZWNhdXNlIGFub3RoZXIgZXh0ZW5zaW9uICgkMikgZGV0ZXJtaW5lZCBhIGRpZmZlcmVudCBmaWxlbmFtZSAiJDMiLlRoaXMgZXh0ZW5zaW9uIHJlbG9hZGVkIGl0c2VsZiB0b28gZnJlcXVlbnRseS5Db3VsZCBub3QgaW5zdGFsbCBwYWNrYWdlIGJlY2F1c2UgYSB1dGlsaXR5IHByb2Nlc3MgY3Jhc2hlZC4gVHJ5IHJlc3RhcnRpbmcgQ2hyb21lIGFuZCB0cnlpbmcgYWdhaW4uUGFja2FnZSBpcyBpbnZhbGlkOiAnJDEnLlBhY2thZ2UgaXMgaW52YWxpZC4gRGV0YWlsczogJyQxJy5Db3VsZCBub3QgaW5zdGFsbCBwYWNrYWdlOiAnJDEnQ2FuIG5vdCB1bnBhY2sgZXh0ZW5zaW9uLiAgVG8gc2FmZWx5IHVucGFjayBhbiBleHRlbnNpb24sIHRoZXJlIG11c3QgYmUgYSBwYXRoIHRvIHlvdXIgcHJvZmlsZSBkaXJlY3RvcnkgdGhhdCBkb2VzIG5vdCBjb250YWluIGEgc3ltbGluay4gIE5vIHN1Y2ggcGF0aCBleGlzdHMgZm9yIHlvdXIgcHJvZmlsZS5XZWJHTCBpcyBub3Qgc3VwcG9ydGVkLkV4dGVuc2lvbiBVbnBhY2tlckV4dGVuc2lvbiBNYW5pZmVzdCBQYXJzZXJBcmlhbCwgc2Fucy1zZXJpZjc1JXtTRUNPTkRTLCBwbHVyYWwsID0xIHsxIHNlY30gb3RoZXIgeyMgc2Vjc319e1NFQ09ORFMsIHBsdXJhbCwgPTEgezEgc2Vjb25kfSBvdGhlciB7IyBzZWNvbmRzfX17TUlOVVRFUywgcGx1cmFsLCA9MSB7MSBtaW59IG90aGVyIHsjIG1pbnN9fXtNSU5VVEVTLCBwbHVyYWwsID0xIHsxIG1pbnV0ZX0gb3RoZXIgeyMgbWludXRlc319e01JTlVURVMsIHBsdXJhbCwgPTEgezEgbWludXRlIGFuZCB9IG90aGVyIHsjIG1pbnV0ZXMgYW5kIH19e0hPVVJTLCBwbHVyYWwsID0xIHsxIGhvdXJ9IG90aGVyIHsjIGhvdXJzfX17SE9VUlMsIHBsdXJhbCwgPTEgezEgaG91ciBhbmQgfSBvdGhlciB7IyBob3VycyBhbmQgfX17REFZUywgcGx1cmFsLCA9MSB7MSBkYXl9IG90aGVyIHsjIGRheXN9fXtEQVlTLCBwbHVyYWwsID0xIHsxIGRheSBhbmQgfSBvdGhlciB7IyBkYXlzIGFuZCB9fXtNT05USFMsIHBsdXJhbCwgPTEgezEgbW9udGh9IG90aGVyIHsjIG1vbnRoc319e1lFQVJTLCBwbHVyYWwsID0xIHsxIHllYXJ9IG90aGVyIHsjIHllYXJzfX17U0VDT05EUywgcGx1cmFsLCA9MSB7MSBzZWMgbGVmdH0gb3RoZXIgeyMgc2VjcyBsZWZ0fX17U0VDT05EUywgcGx1cmFsLCA9MSB7MSBzZWNvbmQgbGVmdH0gb3RoZXIgeyMgc2Vjb25kcyBsZWZ0fX17TUlOVVRFUywgcGx1cmFsLCA9MSB7MSBtaW4gbGVmdH0gb3RoZXIgeyMgbWlucyBsZWZ0fX17TUlOVVRFUywgcGx1cmFsLCA9MSB7MSBtaW51dGUgbGVmdH0gb3RoZXIgeyMgbWludXRlcyBsZWZ0fX17SE9VUlMsIHBsdXJhbCwgPTEgezEgaG91ciBsZWZ0fSBvdGhlciB7IyBob3VycyBsZWZ0fX17REFZUywgcGx1cmFsLCA9MSB7MSBkYXkgbGVmdH0gb3RoZXIgeyMgZGF5cyBsZWZ0fX17TU9OVEhTLCBwbHVyYWwsID0xIHsxIG1vbnRoIGxlZnR9IG90aGVyIHsjIG1vbnRocyBsZWZ0fX17WUVBUlMsIHBsdXJhbCwgPTEgezEgeWVhciBsZWZ0fSBvdGhlciB7IyB5ZWFycyBsZWZ0fX17U0VDT05EUywgcGx1cmFsLCA9MSB7MSBzZWMgYWdvfSBvdGhlciB7IyBzZWNzIGFnb319e1NFQ09ORFMsIHBsdXJhbCwgPTEgezEgc2Vjb25kIGFnb30gb3RoZXIgeyMgc2Vjb25kcyBhZ299fXtNSU5VVEVTLCBwbHVyYWwsID0xIHsxIG1pbiBhZ299IG90aGVyIHsjIG1pbnMgYWdvfX17U0VDT05EUywgcGx1cmFsLCA9MSB7MSBtaW51dGUgYWdvfSBvdGhlciB7IyBtaW51dGVzIGFnb319e0hPVVJTLCBwbHVyYWwsID0xIHsxIGhvdXIgYWdvfSBvdGhlciB7IyBob3VycyBhZ299fXtEQVlTLCBwbHVyYWwsID0xIHsxIGRheSBhZ299IG90aGVyIHsjIGRheXMgYWdvfX17TU9OVEhTLCBwbHVyYWwsID0xIHsxIG1vbnRoIGFnb30gb3RoZXIgeyMgbW9udGhzIGFnb319e1lFQVJTLCBwbHVyYWwsID0xIHsxIHllYXIgYWdvfSBvdGhlciB7IyB5ZWFycyBhZ299fVllc3RlcmRheShlbXB0eSlTZWxlY3QgRm9sZGVyIHRvIFVwbG9hZFNlbGVjdCBGb2xkZXJTYXZlIEZpbGVPcGVuIEZpbGVPcGVuIEZpbGVzQWxsIEZpbGVzVXBsb2FkYWN0aXZhdGVjaGVja2NsaWNrY2xpY2sgYW5jZXN0b3JqdW1wb3BlbnByZXNzc2VsZWN0dW5jaGVja1Njcm9sbCB0byBIZXJlTGVmdCBFZGdlUmlnaHQgRWRnZVRvcEJvdHRvbVBhZ2UgVXBQYWdlIERvd25TY3JvbGwgTGVmdFNjcm9sbCBSaWdodFNjcm9sbCBVcFNjcm9sbCBEb3duRXNjVGFiSW5zRGVsRW5kTGVmdCBBcnJvd1JpZ2h0IEFycm93VXAgQXJyb3dEb3duIEFycm93RW50ZXJTcGFjZUYxRjExQmFja3NwYWNlQ29tbWFQZXJpb2RNZWRpYSBOZXh0IFRyYWNrTWVkaWEgUGxheS9QYXVzZU1lZGlhIFByZXZpb3VzIFRyYWNrTWVkaWEgU3RvcEN0cmwrJDFBbHQrJDFTaGlmdCskMUNvbW1hbmQrJDFTZWFyY2grJDEkMSBCJDEgQi9zJDEgS0IvcyQxIE1CL3MkMSBHQi9zJDEgVEIvcyQxIFBCL3NOb3RpZmljYXRpb24gQ2VudGVyLCAkMSB1bnJlYWQgbm90aWZpY2F0aW9uc05vdGlmaWNhdGlvbkRpc2FibGUgbm90aWZpY2F0aW9ucyBmcm9tICQxRXhwYW5kIG5vdGlmaWNhdGlvbkNvbGxhcHNlIG5vdGlmaWNhdGlvbiAtICQxKyQxIG1vcmUkMSAlJDEgc3lzdGVtbm93e01JTlVURVMsIHBsdXJhbCwgPTEgezFtfSBvdGhlciB7I219fXtIT1VSUywgcGx1cmFsLCA9MSB7MWh9IG90aGVyIHsjaH19e0RBWVMsIHBsdXJhbCwgPTEgezFkfSBvdGhlciB7I2R9fXtZRUFSUywgcGx1cmFsLCA9MSB7MXl9IG90aGVyIHsjeX19QmxvY2sgYWxsIG5vdGlmaWNhdGlvbnNEb24ndCBibG9ja05vdGlmaWNhdGlvbiBjbG9zZU5vdGlmaWNhdGlvbiBzZXR0aW5nc1NVR0dFU1RFRCBBUFBTRlJFUVVFTlRMWSBVU0VEUkVDT01NRU5ERUQgQVBQU01PU1QgTElLRUxZQVBQIFNVR0dFU1RJT05TQUxMIEFQUFNVbm5hbWVkIEZvbGRlckZvbGRlciAkMU9wZW4gZm9sZGVyQ2xvc2UgZm9sZGVyTm8gaW50ZXJuZXQgY29ubmVjdGlvbkV4cGFuZCB0byBhbGwgYXBwc0xhdW5jaGVyLCBhbGwgYXBwc0xhdW5jaGVyLCBwYXJ0aWFsIHZpZXdDbGVhciBzZWFyY2hib3ggdGV4dFBhZ2UgJDEgb2YgJDJTdGFyIHJhdGluZyAkMVRvIGV4aXQgY2FsaWJyYXRpb24gcHJlc3MgRXNjLkNhbGlicmF0ZSB5b3VyIHRvdWNoc2NyZWVuVGFwIHRoZSB0b3VjaCB0YXJnZXRzIG9uIHlvdXIgc2NyZWVuLlRhcCBoZXJlQ2FsaWJyYXRpb24gaXMgY29tcGxldGVkVW5rbm93biBEaXNwbGF5SW50ZXJuYWwgRGlzcGxheUNpdHlQb3N0IFRvd25TdWJ1cmJUb3dubGFuZFZpbGxhZ2UgLyBUb3duc2hpcFN0cmVldCBhZGRyZXNzRWlyY29kZVBJTiBjb2RlRG8vU2lPYmxhc3RPcmdhbml6YXRpb25OZWlnaGJvcmhvb2RZb3UgY2FuJ3QgbGVhdmUgdGhpcyBlbXB0eS5Zb3UgbXVzdCBwcm92aWRlIGEgcG9zdGFsIGNvZGUsIGZvciBleGFtcGxlICQxLiBEb24ndCBrbm93IHlvdXIgcG9zdGFsIGNvZGU/IEZpbmQgaXQgb3V0ICQyaGVyZSQzLllvdSBtdXN0IHByb3ZpZGUgYSBwb3N0YWwgY29kZSwgZm9yIGV4YW1wbGUgJDEuWW91IG11c3QgcHJvdmlkZSBhIFpJUCBjb2RlLCBmb3IgZXhhbXBsZSAkMS4gRG9uJ3Qga25vdyB5b3VyIFpJUCBjb2RlPyBGaW5kIGl0IG91dCAkMmhlcmUkMy5Zb3UgbXVzdCBwcm92aWRlIGEgWklQIGNvZGUsIGZvciBleGFtcGxlICQxLiQxIGlzIG5vdCByZWNvZ25pemVkIGFzIGEga25vd24gdmFsdWUgZm9yIHRoaXMgZmllbGQuVGhpcyBwb3N0YWwgY29kZSBmb3JtYXQgaXMgbm90IHJlY29nbml6ZWQuIEV4YW1wbGUgb2YgYSB2YWxpZCBwb3N0YWwgY29kZTogJDEuIERvbid0IGtub3cgeW91ciBwb3N0YWwgY29kZT8gRmluZCBpdCBvdXQgJDJoZXJlJDMuVGhpcyBwb3N0YWwgY29kZSBmb3JtYXQgaXMgbm90IHJlY29nbml6ZWQuIEV4YW1wbGUgb2YgYSB2YWxpZCBwb3N0YWwgY29kZTogJDEuVGhpcyBwb3N0YWwgY29kZSBmb3JtYXQgaXMgbm90IHJlY29nbml6ZWQuVGhpcyBaSVAgY29kZSBmb3JtYXQgaXMgbm90IHJlY29nbml6ZWQuIEV4YW1wbGUgb2YgYSB2YWxpZCBaSVAgY29kZTogJDEuIERvbid0IGtub3cgeW91ciBaSVAgY29kZT8gRmluZCBpdCBvdXQgJDJoZXJlJDMuVGhpcyBaSVAgY29kZSBmb3JtYXQgaXMgbm90IHJlY29nbml6ZWQuIEV4YW1wbGUgb2YgYSB2YWxpZCBaSVAgY29kZTogJDEuVGhpcyBaSVAgY29kZSBmb3JtYXQgaXMgbm90IHJlY29nbml6ZWQuVGhpcyBwb3N0YWwgY29kZSBkb2VzIG5vdCBhcHBlYXIgdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgdGhpcyBhZGRyZXNzLiBEb24ndCBrbm93IHlvdXIgcG9zdGFsIGNvZGU/IEZpbmQgaXQgb3V0ICQxaGVyZSQyLlRoaXMgcG9zdGFsIGNvZGUgZG9lcyBub3QgYXBwZWFyIHRvIG1hdGNoIHRoZSByZXN0IG9mIHRoaXMgYWRkcmVzcy5UaGlzIFpJUCBjb2RlIGRvZXMgbm90IGFwcGVhciB0byBtYXRjaCB0aGUgcmVzdCBvZiB0aGlzIGFkZHJlc3MuIERvbid0IGtub3cgeW91ciBaSVAgY29kZT8gRmluZCBpdCBvdXQgJDFoZXJlJDIuVGhpcyBaSVAgY29kZSBkb2VzIG5vdCBhcHBlYXIgdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgdGhpcyBhZGRyZXNzLlRoaXMgYWRkcmVzcyBsaW5lIGFwcGVhcnMgdG8gY29udGFpbiBhIHBvc3Qgb2ZmaWNlIGJveC4gUGxlYXNlIHVzZSBhIHN0cmVldCBvciBidWlsZGluZyBhZGRyZXNzLg==