PostHog is an open-source product analytics platform with feature flags, session replay, surveys, A/B testing and a customer data pipeline, all in one tool.
Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:
ewogICJjb21wb3NlIjogIiMgUG9zdEhvZyBzZWxmLWhvc3RlZCAoXCJob2JieVwiIGRlcGxveW1lbnQsIHRyaW1tZWQgZm9yIGEgc2luZ2xlIFZQUykuXG4jIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9Qb3N0SG9nL3Bvc3Rob2cvYmxvYi9tYXN0ZXIvZG9ja2VyLWNvbXBvc2UuaG9iYnkueW1sXG4jIE9taXR0ZWQgdnMgdXBzdHJlYW0gaG9iYnkgKGhlYXZ5L29wdGlvbmFsKTogVGVtcG9yYWwgKyBFbGFzdGljc2VhcmNoIChkYXRhXG4jIHdhcmVob3VzZSAvIGJhdGNoIGV4cG9ydHMpLCBicm93c2VybGVzcyAoaW1hZ2UgZXhwb3J0cyAvIGhlYXRtYXAgc2NyZWVuc2hvdHMpLFxuIyBwZXJzb25ob2csIGN5bWJhbCArIGVycm9yLXRyYWNraW5nL2xvZ3MvdHJhY2VzIGluZ2VzdGlvbiwgY2FwdHVyZS1haSBhbmRcbiMgY2FwdHVyZS1sb2dzLiBFdmVyeXRoaW5nIG5lZWRlZCBmb3IgcHJvZHVjdCBhbmFseXRpY3MsIGZlYXR1cmUgZmxhZ3MsXG4jIHN1cnZleXMsIHNlc3Npb24gcmVwbGF5IGFuZCB0aGUgQ0RQIHBpcGVsaW5lIGlzIGluY2x1ZGVkLlxuXG54LWxvZ2dpbmc6ICZkZWZhdWx0LWxvZ2dpbmdcbiAgZHJpdmVyOiBqc29uLWZpbGVcbiAgb3B0aW9uczpcbiAgICBtYXgtc2l6ZTogXCI1MG1cIlxuICAgIG1heC1maWxlOiBcIjNcIlxuXG54LWRqYW5nby1lbnY6ICZkamFuZ28tZW52XG4gICMgUG9zdGdyZXNcbiAgREFUQUJBU0VfVVJMOiBwb3N0Z3JlczovL3Bvc3Rob2c6cG9zdGhvZ0BkYjo1NDMyL3Bvc3Rob2dcbiAgUEdIT1NUOiBkYlxuICBQR1VTRVI6IHBvc3Rob2dcbiAgUEdQQVNTV09SRDogcG9zdGhvZ1xuICBQRVJTT05TX0RCX1dSSVRFUl9VUkw6IHBvc3RncmVzOi8vcG9zdGhvZzpwb3N0aG9nQGRiOjU0MzIvcG9zdGhvZ1xuICBQRVJTT05TX0RCX1JFQURFUl9VUkw6IHBvc3RncmVzOi8vcG9zdGhvZzpwb3N0aG9nQGRiOjU0MzIvcG9zdGhvZ1xuICAjIENsaWNrSG91c2UgKHVzZXJzIG1hdGNoIGRvY2tlci9jbGlja2hvdXNlL3VzZXJzLnhtbCBmcm9tIHRoZSBQb3N0SG9nIHJlcG8pXG4gIENMSUNLSE9VU0VfSE9TVDogY2xpY2tob3VzZVxuICBDTElDS0hPVVNFX0RBVEFCQVNFOiBwb3N0aG9nXG4gIENMSUNLSE9VU0VfU0VDVVJFOiBcImZhbHNlXCJcbiAgQ0xJQ0tIT1VTRV9WRVJJRlk6IFwiZmFsc2VcIlxuICBDTElDS0hPVVNFX0FQSV9VU0VSOiBhcGlcbiAgQ0xJQ0tIT1VTRV9BUElfUEFTU1dPUkQ6IGFwaXBhc3NcbiAgQ0xJQ0tIT1VTRV9BUFBfVVNFUjogYXBwXG4gIENMSUNLSE9VU0VfQVBQX1BBU1NXT1JEOiBhcHBwYXNzXG4gIENMSUNLSE9VU0VfTE9HU19DTFVTVEVSX0hPU1Q6IGNsaWNraG91c2VcbiAgQ0xJQ0tIT1VTRV9MT0dTX0NMVVNURVJfU0VDVVJFOiBcImZhbHNlXCJcbiAgIyBSZWRpcyAvIEthZmthXG4gIFJFRElTX1VSTDogcmVkaXM6Ly9yZWRpczc6NjM3OS9cbiAgS0FGS0FfSE9TVFM6IGthZmthOjkwOTJcbiAgRkxBR1NfUkVESVNfRU5BQkxFRDogXCJmYWxzZVwiXG4gICMgT2JqZWN0IHN0b3JhZ2UgKE1pbklPKVxuICBPQkpFQ1RfU1RPUkFHRV9FTkFCTEVEOiBcInRydWVcIlxuICBPQkpFQ1RfU1RPUkFHRV9FTkRQT0lOVDogaHR0cDovL29iamVjdHN0b3JhZ2U6MTkwMDBcbiAgT0JKRUNUX1NUT1JBR0VfUFVCTElDX0VORFBPSU5UOiAke1BPU1RIT0dfU0lURV9VUkx9XG4gIE9CSkVDVF9TVE9SQUdFX0FDQ0VTU19LRVlfSUQ6IG9iamVjdF9zdG9yYWdlX3Jvb3RfdXNlclxuICBPQkpFQ1RfU1RPUkFHRV9TRUNSRVRfQUNDRVNTX0tFWTogb2JqZWN0X3N0b3JhZ2Vfcm9vdF9wYXNzd29yZFxuICBPQkpFQ1RfU1RPUkFHRV9GT1JDRV9QQVRIX1NUWUxFOiBcInRydWVcIlxuICAjIFNlc3Npb24gcmVwbGF5IHN0b3JhZ2VcbiAgU0VTU0lPTl9SRUNPUkRJTkdfVjJfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9vYmplY3RzdG9yYWdlOjE5MDAwXG4gIFNFU1NJT05fUkVDT1JESU5HX1YyX1MzX0FDQ0VTU19LRVlfSUQ6IG9iamVjdF9zdG9yYWdlX3Jvb3RfdXNlclxuICBTRVNTSU9OX1JFQ09SRElOR19WMl9TM19TRUNSRVRfQUNDRVNTX0tFWTogb2JqZWN0X3N0b3JhZ2Vfcm9vdF9wYXNzd29yZFxuICBSRUNPUkRJTkdfQVBJX1VSTDogaHR0cDovL3JlY29yZGluZy1hcGk6NjczOFxuICAjIEFwcFxuICBTSVRFX1VSTDogJHtQT1NUSE9HX1NJVEVfVVJMfVxuICBTRUNSRVRfS0VZOiAke1BPU1RIT0dfU0VDUkVUX0tFWX1cbiAgRU5DUllQVElPTl9TQUxUX0tFWVM6ICR7UE9TVEhPR19FTkNSWVBUSU9OX1NBTFRfS0VZU31cbiAgREVQTE9ZTUVOVDogaG9iYnlcbiAgSVNfQkVISU5EX1BST1hZOiBcInRydWVcIlxuICBESVNBQkxFX1NFQ1VSRV9TU0xfUkVESVJFQ1Q6IFwidHJ1ZVwiXG4gICMgXCJmYWxzZVwiIHNvIGxvZ2luIHdvcmtzIG92ZXIgcGxhaW4gSFRUUDsgc2V0IHRvIFwidHJ1ZVwiIG9uY2UgdGhlIGRvbWFpbiB1c2VzIEhUVFBTXG4gIFNFQ1VSRV9DT09LSUVTOiAke1BPU1RIT0dfU0VDVVJFX0NPT0tJRVN9XG4gIENEUF9BUElfVVJMOiBodHRwOi8vcGx1Z2luczo2NzM4XG4gIEZFQVRVUkVfRkxBR1NfU0VSVklDRV9VUkw6IGh0dHA6Ly9mZWF0dXJlLWZsYWdzOjMwMDFcbiAgTElWRVNUUkVBTV9IT1NUOiAke1BPU1RIT0dfU0lURV9VUkx9L2xpdmVzdHJlYW1cbiAgQVBJX1FVRVJJRVNfUEVSX1RFQU06ICd7XCIxXCI6IDEwMH0nXG4gIE9URUxfU0RLX0RJU0FCTEVEOiBcInRydWVcIlxuICBPVEVMX0VYUE9SVEVSX09UTFBfRU5EUE9JTlQ6IFwiXCJcblxuc2VydmljZXM6XG4gICMgT25lLXNob3Q6IGZldGNoZXMgdGhlIENsaWNrSG91c2UgY29uZmlndXJhdGlvbiwgS2Fma2EgdGFibGUgc2NoZW1hcyBhbmRcbiAgIyBmdW5uZWwgVURGcyBmcm9tIHRoZSBQb3N0SG9nIHJlcG8gKHBpbm5lZCB0byB0aGUgc2FtZSBjb21taXQgYXMgdGhlIGFwcFxuICAjIGltYWdlKSBwbHVzIHRoZSBHZW9MaXRlMiBHZW9JUCBkYXRhYmFzZS4gSWRlbXBvdGVudCBhY3Jvc3MgcmVkZXBsb3lzLlxuICBpbml0LWFzc2V0czpcbiAgICBpbWFnZTogYWxwaW5lOjMuMjFcbiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGVudHJ5cG9pbnQ6IC9iaW4vc2hcbiAgICBjb21tYW5kOlxuICAgICAgLSAtY1xuICAgICAgLSB8XG4gICAgICAgIHNldCAtZVxuICAgICAgICBhcGsgYWRkIC0tbm8tY2FjaGUgZ2l0IGN1cmwgYnJvdGxpID4vZGV2L251bGxcbiAgICAgICAgaWYgWyAhIC1mIC9hc3NldHMvLm9rLSR7UE9TVEhPR19WRVJTSU9OfSBdOyB0aGVuXG4gICAgICAgICAgZWNobyBcIkZldGNoaW5nIFBvc3RIb2cgcmVwbyBhc3NldHMgQCAke1BPU1RIT0dfVkVSU0lPTn1cIlxuICAgICAgICAgIHJtIC1yZiAvdG1wL3BoICYmIG1rZGlyIC1wIC90bXAvcGggJiYgY2QgL3RtcC9waFxuICAgICAgICAgIGdpdCBpbml0IC1xIC5cbiAgICAgICAgICBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gaHR0cHM6Ly9naXRodWIuY29tL1Bvc3RIb2cvcG9zdGhvZy5naXRcbiAgICAgICAgICBnaXQgc3BhcnNlLWNoZWNrb3V0IHNldCAtLW5vLWNvbmUgL2RvY2tlci9jbGlja2hvdXNlLyAvcG9zdGhvZy9pZGwvIC9wb3N0aG9nL3VzZXJfc2NyaXB0cy9cbiAgICAgICAgICBnaXQgLWMgcHJvdG9jb2wudmVyc2lvbj0yIGZldGNoIC1xIC0tZGVwdGggMSAtLWZpbHRlcj1ibG9iOm5vbmUgb3JpZ2luICR7UE9TVEhPR19WRVJTSU9OfVxuICAgICAgICAgIGdpdCBjaGVja291dCAtcSBGRVRDSF9IRUFEXG4gICAgICAgICAgcm0gLXJmIC9hc3NldHMvY2xpY2tob3VzZSAvYXNzZXRzL2lkbCAvYXNzZXRzL3VzZXJfc2NyaXB0cyAvYXNzZXRzLy5vay0qXG4gICAgICAgICAgY3AgLXIgZG9ja2VyL2NsaWNraG91c2UgL2Fzc2V0cy9jbGlja2hvdXNlXG4gICAgICAgICAgY3AgLXIgcG9zdGhvZy9pZGwgL2Fzc2V0cy9pZGxcbiAgICAgICAgICBjcCAtciBwb3N0aG9nL3VzZXJfc2NyaXB0cyAvYXNzZXRzL3VzZXJfc2NyaXB0c1xuICAgICAgICAgIHRvdWNoIC9hc3NldHMvLm9rLSR7UE9TVEhPR19WRVJTSU9OfVxuICAgICAgICAgIGVjaG8gXCJSZXBvIGFzc2V0cyByZWFkeVwiXG4gICAgICAgIGZpXG4gICAgICAgIGlmIFsgISAtcyAvc2hhcmUvR2VvTGl0ZTItQ2l0eS5tbWRiIF07IHRoZW5cbiAgICAgICAgICBlY2hvIFwiRG93bmxvYWRpbmcgR2VvTGl0ZTIgZGF0YWJhc2VcIlxuICAgICAgICAgIGN1cmwgLXNMIC0taHR0cDEuMSBodHRwczovL21tZGJjZG4ucG9zdGhvZy5uZXQvIHwgYnJvdGxpIC0tZGVjb21wcmVzcyAtLW91dHB1dD0vc2hhcmUvR2VvTGl0ZTItQ2l0eS5tbWRiXG4gICAgICAgICAgY2htb2QgNjQ0IC9zaGFyZS9HZW9MaXRlMi1DaXR5Lm1tZGJcbiAgICAgICAgZmlcbiAgICAgICAgZWNobyBcImluaXQtYXNzZXRzIGRvbmVcIlxuICAgIHZvbHVtZXM6XG4gICAgICAtIHBvc3Rob2ctYXNzZXRzOi9hc3NldHNcbiAgICAgIC0gZ2VvaXAtZGF0YTovc2hhcmVcblxuICBkYjpcbiAgICBpbWFnZTogcG9zdGdyZXM6MTUuMTItYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBQT1NUR1JFU19VU0VSOiBwb3N0aG9nXG4gICAgICBQT1NUR1JFU19EQjogcG9zdGhvZ1xuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHBvc3Rob2dcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgcG9zdGhvZ1wiXVxuICAgICAgaW50ZXJ2YWw6IDVzXG4gICAgICB0aW1lb3V0OiAxMHNcbiAgICAgIHJldHJpZXM6IDMwXG4gICAgICBzdGFydF9wZXJpb2Q6IDEwc1xuICAgIHZvbHVtZXM6XG4gICAgICAtIHBvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhXG4gICAgICAtIC4uL2ZpbGVzL2RiLWluaXQ6L2RvY2tlci1lbnRyeXBvaW50LWluaXRkYi5kOnJvXG5cbiAgcmVkaXM3OlxuICAgIGltYWdlOiByZWRpczo3LjItYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgY29tbWFuZDogcmVkaXMtc2VydmVyIC0tbWF4bWVtb3J5LXBvbGljeSBhbGxrZXlzLWxydSAtLW1heG1lbW9yeSAyMDBtYlxuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDogW1wiQ01EXCIsIFwicmVkaXMtY2xpXCIsIFwicGluZ1wiXVxuICAgICAgaW50ZXJ2YWw6IDVzXG4gICAgICB0aW1lb3V0OiAxMHNcbiAgICAgIHJldHJpZXM6IDEwXG4gICAgdm9sdW1lczpcbiAgICAgIC0gcmVkaXMtZGF0YTovZGF0YVxuXG4gICMgUmVxdWlyZWQgYnkgQ2xpY2tIb3VzZSBmb3IgZGlzdHJpYnV0ZWQgRERMIChkb2NrZXIvY2xpY2tob3VzZS9jb25maWcueG1sXG4gICMgcG9pbnRzIGF0IHpvb2tlZXBlcjoyMTgxKVxuICB6b29rZWVwZXI6XG4gICAgaW1hZ2U6IHpvb2tlZXBlcjozLjcuMFxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGVudmlyb25tZW50OlxuICAgICAgWk9PX0FVVE9QVVJHRV9QVVJHRUlOVEVSVkFMOiAxXG4gICAgICBaT09fQVVUT1BVUkdFX1NOQVBSRVRBSU5DT1VOVDogM1xuICAgIHZvbHVtZXM6XG4gICAgICAtIHpvb2tlZXBlci1kYXRhOi9kYXRhXG4gICAgICAtIHpvb2tlZXBlci1kYXRhbG9nOi9kYXRhbG9nXG5cbiAgIyBLYWZrYSBBUEkgcHJvdmlkZWQgYnkgUmVkcGFuZGEgKGFzIHVwc3RyZWFtKSwgdHVuZWQgZG93biBmb3Igc21hbGwgc2VydmVyc1xuICBrYWZrYTpcbiAgICBpbWFnZTogZG9ja2VyLmlvL3JlZHBhbmRhZGF0YS9yZWRwYW5kYTp2MjUuMS45XG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgY29tbWFuZDpcbiAgICAgIC0gcmVkcGFuZGFcbiAgICAgIC0gc3RhcnRcbiAgICAgIC0gLS1rYWZrYS1hZGRyIGludGVybmFsOi8vMC4wLjAuMDo5MDkyXG4gICAgICAtIC0tYWR2ZXJ0aXNlLWthZmthLWFkZHIgaW50ZXJuYWw6Ly9rYWZrYTo5MDkyXG4gICAgICAtIC0tcnBjLWFkZHIga2Fma2E6MzMxNDVcbiAgICAgIC0gLS1hZHZlcnRpc2UtcnBjLWFkZHIga2Fma2E6MzMxNDVcbiAgICAgIC0gLS1tb2RlIGRldi1jb250YWluZXJcbiAgICAgIC0gLS1zbXAgMVxuICAgICAgLSAtLW1lbW9yeSAxR1xuICAgICAgLSAtLXJlc2VydmUtbWVtb3J5IDBNXG4gICAgICAtIC0tb3ZlcnByb3Zpc2lvbmVkXG4gICAgICAtIC0tc2V0IHJlZHBhbmRhLmVtcHR5X3NlZWRfc3RhcnRzX2NsdXN0ZXI9ZmFsc2VcbiAgICAgIC0gLS1zZWVkcyBrYWZrYTozMzE0NVxuICAgICAgLSAtLXNldCByZWRwYW5kYS5hdXRvX2NyZWF0ZV90b3BpY3NfZW5hYmxlZD10cnVlXG4gICAgdm9sdW1lczpcbiAgICAgIC0gcmVkcGFuZGEtZGF0YTovdmFyL2xpYi9yZWRwYW5kYS9kYXRhXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTUQtU0hFTExcIiwgXCJjdXJsIC1mIGh0dHA6Ly9sb2NhbGhvc3Q6OTY0NC92MS9zdGF0dXMvcmVhZHkgfHwgZXhpdCAxXCJdXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDEwc1xuICAgICAgcmV0cmllczogMzBcbiAgICAgIHN0YXJ0X3BlcmlvZDogMjBzXG5cbiAgIyBPbmUtc2hvdDogcHJlLWNyZWF0ZXMgdGhlIEthZmthIHRvcGljcyB0aGF0IGNvbnN1bWVycyBjaGVjayBhdCBzdGFydHVwXG4gIGthZmthLWluaXQ6XG4gICAgaW1hZ2U6IGRvY2tlci5pby9yZWRwYW5kYWRhdGEvcmVkcGFuZGE6djI1LjEuOVxuICAgIHJlc3RhcnQ6IG9uLWZhaWx1cmVcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgZW50cnlwb2ludDogL2Jpbi9zaFxuICAgIGRlcGVuZHNfb246XG4gICAgICBrYWZrYTpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBjb21tYW5kOlxuICAgICAgLSAtY1xuICAgICAgLSB8XG4gICAgICAgIHNldCAtZVxuICAgICAgICBUT1BJQ1M9XCJjbGlja2hvdXNlX2V2ZW50c19qc29uIFxcXG4gICAgICAgICAgICBjbGlja2hvdXNlX2FpX2V2ZW50c19qc29uIFxcXG4gICAgICAgICAgICBjbGlja2hvdXNlX2hlYXRtYXBfZXZlbnRzIFxcXG4gICAgICAgICAgICBjbGlja2hvdXNlX2luZ2VzdGlvbl93YXJuaW5ncyBcXFxuICAgICAgICAgICAgZXZlbnRzX3BsdWdpbl9pbmdlc3Rpb24gXFxcbiAgICAgICAgICAgIGV2ZW50c19wbHVnaW5faW5nZXN0aW9uX2RscSBcXFxuICAgICAgICAgICAgZXZlbnRzX3BsdWdpbl9pbmdlc3Rpb25fb3ZlcmZsb3cgXFxcbiAgICAgICAgICAgIGV2ZW50c19wbHVnaW5faW5nZXN0aW9uX2FzeW5jIFxcXG4gICAgICAgICAgICBldmVudHNfcGx1Z2luX2luZ2VzdGlvbl9oaXN0b3JpY2FsIFxcXG4gICAgICAgICAgICBpbmdlc3Rpb24tY2xpZW50d2FybmluZ3MtbWFpbi0xIFxcXG4gICAgICAgICAgICBoZWF0bWFwc19pbmdlc3Rpb24gXFxcbiAgICAgICAgICAgIHNlc3Npb25fcmVjb3JkaW5nX3NuYXBzaG90X2l0ZW1fZXZlbnRzIFxcXG4gICAgICAgICAgICBzZXNzaW9uX3JlY29yZGluZ19zbmFwc2hvdF9pdGVtX292ZXJmbG93IFxcXG4gICAgICAgICAgICBjbGlja2hvdXNlX2dyb3VwcyBcXFxuICAgICAgICAgICAgY2xpY2tob3VzZV9wZXJzb24gXFxcbiAgICAgICAgICAgIGNsaWNraG91c2VfcGVyc29uX2Rpc3RpbmN0X2lkIFxcXG4gICAgICAgICAgICBjbGlja2hvdXNlX2FwcF9tZXRyaWNzMiBcXFxuICAgICAgICAgICAgbG9nX2VudHJpZXMgXFxcbiAgICAgICAgICAgIGNsaWNraG91c2VfdG9waG9nXCJcbiAgICAgICAgZm9yIHRvcGljIGluICQkVE9QSUNTOyBkb1xuICAgICAgICAgIHJwayB0b3BpYyBjcmVhdGUgXCIkJHRvcGljXCIgLS1icm9rZXJzIGthZmthOjkwOTIgLXAgMSAtciAxIDI+L2Rldi9udWxsIFxcXG4gICAgICAgICAgICB8fCBycGsgdG9waWMgbGlzdCAtLWJyb2tlcnMga2Fma2E6OTA5MiB8IGdyZXAgLXEgXCIkJHRvcGljXCJcbiAgICAgICAgZG9uZVxuICAgICAgICBlY2hvIFwiS2Fma2EgdG9waWNzIHJlYWR5XCJcblxuICBjbGlja2hvdXNlOlxuICAgIGltYWdlOiBjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI2LjYuMS4xMTkzXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGluaXQtYXNzZXRzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVxuICAgICAgem9va2VlcGVyOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2Vfc3RhcnRlZFxuICAgICAga2Fma2E6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkXG4gICAgZW50cnlwb2ludDogL2Jpbi9iYXNoXG4gICAgY29tbWFuZDpcbiAgICAgIC0gLWNcbiAgICAgIC0gfFxuICAgICAgICBzZXQgLWVcbiAgICAgICAgY3AgL2Fzc2V0cy9jbGlja2hvdXNlL2NvbmZpZy54bWwgL2V0Yy9jbGlja2hvdXNlLXNlcnZlci9jb25maWcueG1sXG4gICAgICAgIGNwIC9hc3NldHMvY2xpY2tob3VzZS9jb25maWcuZC9kZWZhdWx0LnhtbCAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy5kL2RlZmF1bHQueG1sXG4gICAgICAgIGNwIC9hc3NldHMvY2xpY2tob3VzZS91c2Vycy54bWwgL2V0Yy9jbGlja2hvdXNlLXNlcnZlci91c2Vycy54bWxcbiAgICAgICAgY3AgL2Fzc2V0cy9jbGlja2hvdXNlL3VzZXJfZGVmaW5lZF9mdW5jdGlvbi54bWwgL2V0Yy9jbGlja2hvdXNlLXNlcnZlci91c2VyX2RlZmluZWRfZnVuY3Rpb24ueG1sXG4gICAgICAgIG1rZGlyIC1wIC92YXIvbGliL2NsaWNraG91c2UvZm9ybWF0X3NjaGVtYXMgL3Zhci9saWIvY2xpY2tob3VzZS91c2VyX3NjcmlwdHNcbiAgICAgICAgY3AgLXIgL2Fzc2V0cy9pZGwvLiAvdmFyL2xpYi9jbGlja2hvdXNlL2Zvcm1hdF9zY2hlbWFzL1xuICAgICAgICBjcCAtciAvYXNzZXRzL3VzZXJfc2NyaXB0cy8uIC92YXIvbGliL2NsaWNraG91c2UvdXNlcl9zY3JpcHRzL1xuICAgICAgICBjaG1vZCAtUiA3NTUgL3Zhci9saWIvY2xpY2tob3VzZS91c2VyX3NjcmlwdHNcbiAgICAgICAgY2hvd24gLVIgY2xpY2tob3VzZTpjbGlja2hvdXNlIC92YXIvbGliL2NsaWNraG91c2UvZm9ybWF0X3NjaGVtYXMgL3Zhci9saWIvY2xpY2tob3VzZS91c2VyX3NjcmlwdHMgfHwgdHJ1ZVxuICAgICAgICAjIE1hdGVyaWFsaXplIHN5c3RlbSBsb2cgdGFibGVzIChzeXN0ZW0uY3Jhc2hfbG9nIGlzIHJlcXVpcmVkIGJ5IHRoZVxuICAgICAgICAjIGN1c3RvbV9tZXRyaWNzIENsaWNrSG91c2UgbWlncmF0aW9uKSwgbWlycm9yaW5nIHVwc3RyZWFtIGluaXQtZGIuc2hcbiAgICAgICAgKFxuICAgICAgICAgIGk9MFxuICAgICAgICAgIHdoaWxlIFsgJCRpIC1sdCA5MCBdOyBkb1xuICAgICAgICAgICAgaWYgY2xpY2tob3VzZS1jbGllbnQgLS1xdWVyeSBcIlNFTEVDVCAxXCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuXG4gICAgICAgICAgICAgIGNsaWNraG91c2UtY2xpZW50IC0tcXVlcnkgXCJTWVNURU0gRkxVU0ggTE9HU1wiICYmIGVjaG8gXCJzeXN0ZW0gbG9ncyBmbHVzaGVkXCIgJiYgYnJlYWtcbiAgICAgICAgICAgIGZpXG4gICAgICAgICAgICBzbGVlcCAyXG4gICAgICAgICAgICBpPSQkKChpKzEpKVxuICAgICAgICAgIGRvbmVcbiAgICAgICAgKSAmXG4gICAgICAgIGV4ZWMgL2VudHJ5cG9pbnQuc2hcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIENMSUNLSE9VU0VfU0tJUF9VU0VSX1NFVFVQOiAxXG4gICAgICBLQUZLQV9IT1NUUzoga2Fma2E6OTA5MlxuICAgIHZvbHVtZXM6XG4gICAgICAtIHBvc3Rob2ctYXNzZXRzOi9hc3NldHM6cm9cbiAgICAgIC0gY2xpY2tob3VzZS1kYXRhOi92YXIvbGliL2NsaWNraG91c2VcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcIndnZXQgLS1uby12ZXJib3NlIC0tdHJpZXM9MSAtLXNwaWRlciBodHRwOi8vbG9jYWxob3N0OjgxMjMvcGluZyB8fCBleGl0IDFcIl1cbiAgICAgIGludGVydmFsOiA1c1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiAzMFxuICAgICAgc3RhcnRfcGVyaW9kOiAzMHNcblxuICAjIERqYW5nbyBhcHA6IHJ1bnMgbWlncmF0aW9ucywgdGhlbiBzZXJ2ZXMgdGhlIEFQSSArIFVJIG9uIDo4MDAwXG4gIHdlYjpcbiAgICBpbWFnZTogcG9zdGhvZy9wb3N0aG9nOiR7UE9TVEhPR19WRVJTSU9OfVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWNcIiwgXCIuL2Jpbi9taWdyYXRlICYmIGV4ZWMgLi9iaW4vZG9ja2VyLXNlcnZlclwiXVxuICAgIGRlcGVuZHNfb246XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzNzpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGNsaWNraG91c2U6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICBrYWZrYTpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGthZmthLWluaXQ6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XG4gICAgICBvYmplY3RzdG9yYWdlOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2Vfc3RhcnRlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgPDw6ICpkamFuZ28tZW52XG4gICAgICBOR0lOWF9VTklUX0FQUF9QUk9DRVNTRVM6IDJcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcImN1cmwgLWZzIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9faGVhbHRoIHx8IGV4aXQgMVwiXVxuICAgICAgaW50ZXJ2YWw6IDMwc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiAxNVxuICAgICAgc3RhcnRfcGVyaW9kOiA2MDBzXG5cbiAgIyBDZWxlcnkgd29ya2VyICsgc2NoZWR1bGVyXG4gIHdvcmtlcjpcbiAgICBpbWFnZTogcG9zdGhvZy9wb3N0aG9nOiR7UE9TVEhPR19WRVJTSU9OfVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGNvbW1hbmQ6IC4vYmluL2RvY2tlci13b3JrZXItY2VsZXJ5IC0td2l0aC1zY2hlZHVsZXJcbiAgICBkZXBlbmRzX29uOlxuICAgICAgZGI6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICByZWRpczc6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICBjbGlja2hvdXNlOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAga2Fma2E6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICB3ZWI6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICA8PDogKmRqYW5nby1lbnZcbiAgICAgIFBPU1RIT0dfU0tJUF9NSUdSQVRJT05fQ0hFQ0tTOiBcIjFcIlxuICAgICAgV0VCX0NPTkNVUlJFTkNZOiAyXG5cbiAgIyBOb2RlIHBsdWdpbiBzZXJ2ZXI6IENEUCAoZGVzdGluYXRpb25zLCB3ZWJob29rcywgdHJhbnNmb3JtYXRpb25zKVxuICBwbHVnaW5zOlxuICAgIGltYWdlOiBwb3N0aG9nL3Bvc3Rob2ctbm9kZToke1BPU1RIT0dfTk9ERV9WRVJTSU9OfVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGRlcGVuZHNfb246XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzNzpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGthZmthOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgY2xpY2tob3VzZTpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX3N0YXJ0ZWRcbiAgICAgIGthZmthLWluaXQ6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XG4gICAgICBpbml0LWFzc2V0czpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgICMgUnVuIG9ubHkgdGhlIHBpcGVsaW5lcyB0aGlzIHRlbXBsYXRlIHNoaXBzIChDRFAgZGVzdGluYXRpb25zL3dvcmtmbG93cyxcbiAgICAgICMgcmVhbHRpbWUgY29ob3J0cywgZmVhdHVyZS1mbGFnIGV2YWx1YXRpb24pLiBUaGUgZGVmYXVsdCBtb2RlIHdvdWxkIGFsc29cbiAgICAgICMgc3RhcnQgdGhlIGxvZ3MvZXJyb3ItdHJhY2tpbmcgaW5nZXN0aW9uIGNvbnN1bWVycywgd2hpY2ggdGhpcyB0ZW1wbGF0ZVxuICAgICAgIyBpbnRlbnRpb25hbGx5IG9taXRzLlxuICAgICAgTk9ERUpTX0NBUEFCSUxJVFlfR1JPVVBTOiBjZHBfd29ya2Zsb3dzLHJlYWx0aW1lX2NvaG9ydHMsZmVhdHVyZV9mbGFnc1xuICAgICAgU0lURV9VUkw6ICR7UE9TVEhPR19TSVRFX1VSTH1cbiAgICAgIFNFQ1JFVF9LRVk6ICR7UE9TVEhPR19TRUNSRVRfS0VZfVxuICAgICAgRU5DUllQVElPTl9TQUxUX0tFWVM6ICR7UE9TVEhPR19FTkNSWVBUSU9OX1NBTFRfS0VZU31cbiAgICAgIERBVEFCQVNFX1VSTDogcG9zdGdyZXM6Ly9wb3N0aG9nOnBvc3Rob2dAZGI6NTQzMi9wb3N0aG9nXG4gICAgICBQRVJTT05TX0RBVEFCQVNFX1VSTDogcG9zdGdyZXM6Ly9wb3N0aG9nOnBvc3Rob2dAZGI6NTQzMi9wb3N0aG9nXG4gICAgICBCRUhBVklPUkFMX0NPSE9SVFNfREFUQUJBU0VfVVJMOiBwb3N0Z3JlczovL3Bvc3Rob2c6cG9zdGhvZ0BkYjo1NDMyL3Bvc3Rob2dcbiAgICAgIENZQ0xPVFJPTl9EQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGhvZzpwb3N0aG9nQGRiOjU0MzIvcG9zdGhvZ1xuICAgICAgS0FGS0FfSE9TVFM6IGthZmthOjkwOTJcbiAgICAgIFJFRElTX1VSTDogcmVkaXM6Ly9yZWRpczc6NjM3OS9cbiAgICAgIENEUF9SRURJU19IT1NUOiByZWRpczdcbiAgICAgIENEUF9SRURJU19QT1JUOiA2Mzc5XG4gICAgICAjIFRMUyBmb3IgdGhlc2UgZGVmYXVsdHMgdG8gXCJ0cnVlXCIgaW4gcHJvZHVjdGlvbiBpbWFnZXM7IHRoaXMgc3RhY2snc1xuICAgICAgIyBSZWRpcyBpcyBwbGFpbnRleHQgKGEgVExTIGhhbmRzaGFrZSBhZ2FpbnN0IGl0IGhhbmdzIHVudGlsIHRpbWVvdXQgYW5kXG4gICAgICAjIGNyYXNoLWxvb3BzIHRoZSBwcm9jZXNzIGlmIHRoZXNlIGNvbnN1bWVycyBldmVyIHJ1bikuXG4gICAgICBMT0dTX1JFRElTX0hPU1Q6IHJlZGlzN1xuICAgICAgTE9HU19SRURJU19UTFM6IFwiZmFsc2VcIlxuICAgICAgVFJBQ0VTX1JFRElTX0hPU1Q6IHJlZGlzN1xuICAgICAgVFJBQ0VTX1JFRElTX1RMUzogXCJmYWxzZVwiXG4gICAgICBDT09LSUVMRVNTX1JFRElTX0hPU1Q6IHJlZGlzN1xuICAgICAgQ09PS0lFTEVTU19SRURJU19QT1JUOiA2Mzc5XG4gICAgICBDTElDS0hPVVNFX0hPU1Q6IGNsaWNraG91c2VcbiAgICAgIENMSUNLSE9VU0VfREFUQUJBU0U6IHBvc3Rob2dcbiAgICAgIENMSUNLSE9VU0VfU0VDVVJFOiBcImZhbHNlXCJcbiAgICAgIENMSUNLSE9VU0VfVkVSSUZZOiBcImZhbHNlXCJcbiAgICAgIE9CSkVDVF9TVE9SQUdFX0VOQUJMRUQ6IFwidHJ1ZVwiXG4gICAgICBPQkpFQ1RfU1RPUkFHRV9FTkRQT0lOVDogaHR0cDovL29iamVjdHN0b3JhZ2U6MTkwMDBcbiAgICAgIE9CSkVDVF9TVE9SQUdFX1BVQkxJQ19FTkRQT0lOVDogJHtQT1NUSE9HX1NJVEVfVVJMfVxuICAgICAgT0JKRUNUX1NUT1JBR0VfQUNDRVNTX0tFWV9JRDogb2JqZWN0X3N0b3JhZ2Vfcm9vdF91c2VyXG4gICAgICBPQkpFQ1RfU1RPUkFHRV9TRUNSRVRfQUNDRVNTX0tFWTogb2JqZWN0X3N0b3JhZ2Vfcm9vdF9wYXNzd29yZFxuICAgICAgT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UOiBcIlwiXG4gICAgdm9sdW1lczpcbiAgICAgIC0gZ2VvaXAtZGF0YTovc2hhcmU6cm9cblxuICAjIE5vZGUgcGx1Z2luIHNlcnZlcjogZXZlbnQgaW5nZXN0aW9uIChLYWZrYSAtPiBwZXJzb24gcHJvY2Vzc2luZyAtPiBDbGlja0hvdXNlKVxuICBpbmdlc3Rpb24tZ2VuZXJhbDpcbiAgICBpbWFnZTogcG9zdGhvZy9wb3N0aG9nLW5vZGU6JHtQT1NUSE9HX05PREVfVkVSU0lPTn1cbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGxvZ2dpbmc6ICpkZWZhdWx0LWxvZ2dpbmdcbiAgICBkZXBlbmRzX29uOlxuICAgICAgZGI6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICByZWRpczc6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICBrYWZrYTpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGNsaWNraG91c2U6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkXG4gICAgICBrYWZrYS1pbml0OlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVxuICAgICAgaW5pdC1hc3NldHM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBQTFVHSU5fU0VSVkVSX01PREU6IGluZ2VzdGlvbi12Mi1jb21iaW5lZFxuICAgICAgRU5DUllQVElPTl9TQUxUX0tFWVM6ICR7UE9TVEhPR19FTkNSWVBUSU9OX1NBTFRfS0VZU31cbiAgICAgIERBVEFCQVNFX1VSTDogcG9zdGdyZXM6Ly9wb3N0aG9nOnBvc3Rob2dAZGI6NTQzMi9wb3N0aG9nXG4gICAgICBQRVJTT05TX0RBVEFCQVNFX1VSTDogcG9zdGdyZXM6Ly9wb3N0aG9nOnBvc3Rob2dAZGI6NTQzMi9wb3N0aG9nXG4gICAgICBCRUhBVklPUkFMX0NPSE9SVFNfREFUQUJBU0VfVVJMOiBwb3N0Z3JlczovL3Bvc3Rob2c6cG9zdGhvZ0BkYjo1NDMyL3Bvc3Rob2dcbiAgICAgIEtBRktBX0hPU1RTOiBrYWZrYTo5MDkyXG4gICAgICBSRURJU19VUkw6IHJlZGlzOi8vcmVkaXM3OjYzNzkvXG4gICAgICBDT09LSUVMRVNTX1JFRElTX0hPU1Q6IHJlZGlzN1xuICAgICAgQ09PS0lFTEVTU19SRURJU19QT1JUOiA2Mzc5XG4gICAgICBDRFBfUkVESVNfSE9TVDogcmVkaXM3XG4gICAgICBMT0dTX1JFRElTX0hPU1Q6IHJlZGlzN1xuICAgICAgTE9HU19SRURJU19UTFM6IFwiZmFsc2VcIlxuICAgICAgVFJBQ0VTX1JFRElTX0hPU1Q6IHJlZGlzN1xuICAgICAgVFJBQ0VTX1JFRElTX1RMUzogXCJmYWxzZVwiXG4gICAgICBDTElDS0hPVVNFX0hPU1Q6IGNsaWNraG91c2VcbiAgICAgIENMSUNLSE9VU0VfREFUQUJBU0U6IHBvc3Rob2dcbiAgICAgIENMSUNLSE9VU0VfU0VDVVJFOiBcImZhbHNlXCJcbiAgICAgIENMSUNLSE9VU0VfVkVSSUZZOiBcImZhbHNlXCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBnZW9pcC1kYXRhOi9zaGFyZTpyb1xuXG4gICMgTm9kZSBwbHVnaW4gc2VydmVyOiBzZXNzaW9uIHJlcGxheSBibG9iIGluZ2VzdGlvbiAoS2Fma2EgLT4gUzMpXG4gIGluZ2VzdGlvbi1zZXNzaW9ucmVwbGF5OlxuICAgIGltYWdlOiBwb3N0aG9nL3Bvc3Rob2ctbm9kZToke1BPU1RIT0dfTk9ERV9WRVJTSU9OfVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGRlcGVuZHNfb246XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzNzpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGthZmthOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAga2Fma2EtaW5pdDpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcbiAgICAgIG9iamVjdHN0b3JhZ2U6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBQTFVHSU5fU0VSVkVSX01PREU6IHJlY29yZGluZ3MtYmxvYi1pbmdlc3Rpb24tdjJcbiAgICAgIEVOQ1JZUFRJT05fU0FMVF9LRVlTOiAke1BPU1RIT0dfRU5DUllQVElPTl9TQUxUX0tFWVN9XG4gICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGhvZzpwb3N0aG9nQGRiOjU0MzIvcG9zdGhvZ1xuICAgICAgS0FGS0FfSE9TVFM6IGthZmthOjkwOTJcbiAgICAgIFJFRElTX1VSTDogcmVkaXM6Ly9yZWRpczc6NjM3OS9cbiAgICAgIFNFU1NJT05fUkVDT1JESU5HX1YyX1MzX0VORFBPSU5UOiBodHRwOi8vb2JqZWN0c3RvcmFnZToxOTAwMFxuICAgICAgU0VTU0lPTl9SRUNPUkRJTkdfVjJfUzNfQUNDRVNTX0tFWV9JRDogb2JqZWN0X3N0b3JhZ2Vfcm9vdF91c2VyXG4gICAgICBTRVNTSU9OX1JFQ09SRElOR19WMl9TM19TRUNSRVRfQUNDRVNTX0tFWTogb2JqZWN0X3N0b3JhZ2Vfcm9vdF9wYXNzd29yZFxuICAgICAgU0VTU0lPTl9SRUNPUkRJTkdfVjJfUzNfVElNRU9VVF9NUzogMTIwMDAwXG5cbiAgIyBOb2RlIHBsdWdpbiBzZXJ2ZXI6IHNlc3Npb24gcmVwbGF5IHBsYXliYWNrIEFQSVxuICByZWNvcmRpbmctYXBpOlxuICAgIGltYWdlOiBwb3N0aG9nL3Bvc3Rob2ctbm9kZToke1BPU1RIT0dfTk9ERV9WRVJTSU9OfVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGRlcGVuZHNfb246XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzNzpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGNsaWNraG91c2U6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkXG4gICAgICBvYmplY3RzdG9yYWdlOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2Vfc3RhcnRlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgUExVR0lOX1NFUlZFUl9NT0RFOiByZWNvcmRpbmctYXBpXG4gICAgICBFTkNSWVBUSU9OX1NBTFRfS0VZUzogJHtQT1NUSE9HX0VOQ1JZUFRJT05fU0FMVF9LRVlTfVxuICAgICAgREFUQUJBU0VfVVJMOiBwb3N0Z3JlczovL3Bvc3Rob2c6cG9zdGhvZ0BkYjo1NDMyL3Bvc3Rob2dcbiAgICAgIFJFRElTX1VSTDogcmVkaXM6Ly9yZWRpczc6NjM3OS9cbiAgICAgIFNFU1NJT05fUkVDT1JESU5HX0FQSV9SRURJU19IT1NUOiByZWRpczdcbiAgICAgIFNFU1NJT05fUkVDT1JESU5HX0FQSV9SRURJU19QT1JUOiA2Mzc5XG4gICAgICBDTElDS0hPVVNFX0hPU1Q6IGNsaWNraG91c2VcbiAgICAgIENMSUNLSE9VU0VfREFUQUJBU0U6IHBvc3Rob2dcbiAgICAgIENMSUNLSE9VU0VfU0VDVVJFOiBcImZhbHNlXCJcbiAgICAgIENMSUNLSE9VU0VfVkVSSUZZOiBcImZhbHNlXCJcbiAgICAgIFNFU1NJT05fUkVDT1JESU5HX1YyX1MzX0VORFBPSU5UOiBodHRwOi8vb2JqZWN0c3RvcmFnZToxOTAwMFxuICAgICAgU0VTU0lPTl9SRUNPUkRJTkdfVjJfUzNfQUNDRVNTX0tFWV9JRDogb2JqZWN0X3N0b3JhZ2Vfcm9vdF91c2VyXG4gICAgICBTRVNTSU9OX1JFQ09SRElOR19WMl9TM19TRUNSRVRfQUNDRVNTX0tFWTogb2JqZWN0X3N0b3JhZ2Vfcm9vdF9wYXNzd29yZFxuXG4gICMgUnVzdCBldmVudCBjYXB0dXJlIGVuZHBvaW50ICgvZSwgL2JhdGNoLCAvY2FwdHVyZSwgL2kvdjApXG4gIGNhcHR1cmU6XG4gICAgaW1hZ2U6IGdoY3IuaW8vcG9zdGhvZy9wb3N0aG9nL2NhcHR1cmU6bWFzdGVyXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGthZmthOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgcmVkaXM3OlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGVudmlyb25tZW50OlxuICAgICAgQUREUkVTUzogMC4wLjAuMDozMDAwXG4gICAgICBLQUZLQV9UT1BJQzogZXZlbnRzX3BsdWdpbl9pbmdlc3Rpb25cbiAgICAgIEtBRktBX0hPU1RTOiBrYWZrYTo5MDkyXG4gICAgICBSRURJU19VUkw6IHJlZGlzOi8vcmVkaXM3OjYzNzkvXG4gICAgICBDQVBUVVJFX01PREU6IGV2ZW50c1xuICAgICAgUlVTVF9MT0c6IGluZm8scmRrYWZrYT13YXJuXG4gICAgICBDQVBUVVJFX1YxX1NJTktTOiBtc2tcbiAgICAgIENBUFRVUkVfVjFfU0lOS19NU0tfS0FGS0FfSE9TVFM6IGthZmthOjkwOTJcbiAgICAgIENBUFRVUkVfVjFfU0lOS19NU0tfS0FGS0FfVE9QSUNfTUFJTjogZXZlbnRzX3BsdWdpbl9pbmdlc3Rpb25cbiAgICAgIENBUFRVUkVfVjFfU0lOS19NU0tfS0FGS0FfVE9QSUNfSElTVE9SSUNBTDogZXZlbnRzX3BsdWdpbl9pbmdlc3Rpb25faGlzdG9yaWNhbFxuICAgICAgQ0FQVFVSRV9WMV9TSU5LX01TS19LQUZLQV9UT1BJQ19PVkVSRkxPVzogZXZlbnRzX3BsdWdpbl9pbmdlc3Rpb25fb3ZlcmZsb3dcbiAgICAgIENBUFRVUkVfVjFfU0lOS19NU0tfS0FGS0FfVE9QSUNfRExROiBldmVudHNfcGx1Z2luX2luZ2VzdGlvbl9kbHFcbiAgICAgIENBUFRVUkVfVjFfU0lOS19NU0tfS0FGS0FfVE9QSUNfRVhDRVBUSU9OOiBpbmdlc3Rpb24tZXJyb3J0cmFja2luZy1tYWluXG4gICAgICBDQVBUVVJFX1YxX1NJTktfTVNLX0tBRktBX1RPUElDX0hFQVRNQVA6IGhlYXRtYXBzX2luZ2VzdGlvblxuICAgICAgQ0FQVFVSRV9WMV9TSU5LX01TS19LQUZLQV9UT1BJQ19DTElFTlRfSU5HRVNUSU9OX1dBUk5JTkc6IGluZ2VzdGlvbi1jbGllbnR3YXJuaW5ncy1tYWluLTFcblxuICAjIFJ1c3QgY2FwdHVyZSBlbmRwb2ludCBmb3Igc2Vzc2lvbiByZWNvcmRpbmdzICgvcylcbiAgcmVwbGF5LWNhcHR1cmU6XG4gICAgaW1hZ2U6IGdoY3IuaW8vcG9zdGhvZy9wb3N0aG9nL2NhcHR1cmU6bWFzdGVyXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGthZmthOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgcmVkaXM3OlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGVudmlyb25tZW50OlxuICAgICAgQUREUkVTUzogMC4wLjAuMDozMDAwXG4gICAgICBLQUZLQV9UT1BJQzogc2Vzc2lvbl9yZWNvcmRpbmdfc25hcHNob3RfaXRlbV9ldmVudHNcbiAgICAgIEtBRktBX0hPU1RTOiBrYWZrYTo5MDkyXG4gICAgICBSRURJU19VUkw6IHJlZGlzOi8vcmVkaXM3OjYzNzkvXG4gICAgICBDQVBUVVJFX01PREU6IHJlY29yZGluZ3NcblxuICAjIFJ1c3QgZmVhdHVyZSBmbGFnIGV2YWx1YXRpb24gc2VydmljZSAoL2ZsYWdzKVxuICBmZWF0dXJlLWZsYWdzOlxuICAgIGltYWdlOiBnaGNyLmlvL3Bvc3Rob2cvcG9zdGhvZy9mZWF0dXJlLWZsYWdzOm1hc3RlclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgbG9nZ2luZzogKmRlZmF1bHQtbG9nZ2luZ1xuICAgIGRlcGVuZHNfb246XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzNzpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGluaXQtYXNzZXRzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVxuICAgIGVudmlyb25tZW50OlxuICAgICAgV1JJVEVfREFUQUJBU0VfVVJMOiBwb3N0Z3JlczovL3Bvc3Rob2c6cG9zdGhvZ0BkYjo1NDMyL3Bvc3Rob2dcbiAgICAgIFJFQURfREFUQUJBU0VfVVJMOiBwb3N0Z3JlczovL3Bvc3Rob2c6cG9zdGhvZ0BkYjo1NDMyL3Bvc3Rob2dcbiAgICAgIFBFUlNPTlNfV1JJVEVfREFUQUJBU0VfVVJMOiBwb3N0Z3JlczovL3Bvc3Rob2c6cG9zdGhvZ0BkYjo1NDMyL3Bvc3Rob2dcbiAgICAgIFBFUlNPTlNfUkVBRF9EQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGhvZzpwb3N0aG9nQGRiOjU0MzIvcG9zdGhvZ1xuICAgICAgTUFYTUlORF9EQl9QQVRIOiAvc2hhcmUvR2VvTGl0ZTItQ2l0eS5tbWRiXG4gICAgICBSRURJU19VUkw6IHJlZGlzOi8vcmVkaXM3OjYzNzkvXG4gICAgICBBRERSRVNTOiAwLjAuMC4wOjMwMDFcbiAgICAgIFJVU1RfTE9HOiBpbmZvXG4gICAgICBDT09LSUVMRVNTX1JFRElTX0hPU1Q6IHJlZGlzN1xuICAgICAgQ09PS0lFTEVTU19SRURJU19QT1JUOiA2Mzc5XG4gICAgdm9sdW1lczpcbiAgICAgIC0gZ2VvaXAtZGF0YTovc2hhcmU6cm9cblxuICAjIFJ1c3QgaHlwZXJjYWNoZSBzZXJ2ZXIgKC9hcnJheSByZW1vdGUgY29uZmlnICsgL3N1cnZleXMpXG4gIGh5cGVyY2FjaGUtc2VydmVyOlxuICAgIGltYWdlOiBnaGNyLmlvL3Bvc3Rob2cvcG9zdGhvZy9oeXBlcmNhY2hlLXNlcnZlcjptYXN0ZXJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGxvZ2dpbmc6ICpkZWZhdWx0LWxvZ2dpbmdcbiAgICBkZXBlbmRzX29uOlxuICAgICAgcmVkaXM3OlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGVudmlyb25tZW50OlxuICAgICAgUkVESVNfVVJMOiByZWRpczovL3JlZGlzNzo2Mzc5L1xuICAgICAgQUREUkVTUzogMC4wLjAuMDozMDAyXG4gICAgICBSVVNUX0xPRzogaW5mb1xuXG4gICMgTGl2ZSBldmVudHMgc3RyZWFtICgvbGl2ZXN0cmVhbSlcbiAgbGl2ZXN0cmVhbTpcbiAgICBpbWFnZTogZ2hjci5pby9wb3N0aG9nL3Bvc3Rob2cvbGl2ZXN0cmVhbTptYXN0ZXJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGxvZ2dpbmc6ICpkZWZhdWx0LWxvZ2dpbmdcbiAgICBkZXBlbmRzX29uOlxuICAgICAga2Fma2E6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBMSVZFU1RSRUFNX0pXVF9TRUNSRVQ6ICR7UE9TVEhPR19TRUNSRVRfS0VZfVxuICAgIHZvbHVtZXM6XG4gICAgICAtIC4uL2ZpbGVzL2xpdmVzdHJlYW0vY29uZmlncy55bWw6L2NvbmZpZ3MvY29uZmlncy55bWw6cm9cblxuICBvYmplY3RzdG9yYWdlOlxuICAgIGltYWdlOiBtaW5pby9taW5pbzpSRUxFQVNFLjIwMjUtMDQtMjJUMjItMTItMjZaXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBNSU5JT19ST09UX1VTRVI6IG9iamVjdF9zdG9yYWdlX3Jvb3RfdXNlclxuICAgICAgTUlOSU9fUk9PVF9QQVNTV09SRDogb2JqZWN0X3N0b3JhZ2Vfcm9vdF9wYXNzd29yZFxuICAgIGVudHJ5cG9pbnQ6IHNoXG4gICAgY29tbWFuZDogLWMgJ21rZGlyIC1wIC9kYXRhL3Bvc3Rob2cgJiYgbWluaW8gc2VydmVyIC0tYWRkcmVzcyBcIjoxOTAwMFwiIC0tY29uc29sZS1hZGRyZXNzIFwiOjE5MDAxXCIgL2RhdGEnXG4gICAgdm9sdW1lczpcbiAgICAgIC0gb2JqZWN0c3RvcmFnZS1kYXRhOi9kYXRhXG5cbiAgIyBDYWRkeSByb3V0ZXMgdGhlIHNpbmdsZSBwdWJsaWMgZG9tYWluIHRvIHRoZSByaWdodCBpbnRlcm5hbCBzZXJ2aWNlLFxuICAjIGV4YWN0bHkgbGlrZSB0aGUgdXBzdHJlYW0gaG9iYnkgZGVwbG95bWVudCAoVExTIGlzIHRlcm1pbmF0ZWQgYnkgVHJhZWZpaylcbiAgcHJveHk6XG4gICAgaW1hZ2U6IGNhZGR5OjIuMTAtYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBsb2dnaW5nOiAqZGVmYXVsdC1sb2dnaW5nXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIHdlYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX3N0YXJ0ZWRcbiAgICBlbnRyeXBvaW50OiBzaFxuICAgIGNvbW1hbmQ6IC1jICdwcmludGYgXCIlc1wiIFwiJCRDQUREWUZJTEVcIiA+IC9ldGMvY2FkZHkvQ2FkZHlmaWxlICYmIGV4ZWMgY2FkZHkgcnVuIC1jIC9ldGMvY2FkZHkvQ2FkZHlmaWxlJ1xuICAgIGVudmlyb25tZW50OlxuICAgICAgQ0FERFlGSUxFOiB8XG4gICAgICAgIHtcbiAgICAgICAgICAgIGF1dG9faHR0cHMgb2ZmXG4gICAgICAgIH1cbiAgICAgICAgOjgwIHtcbiAgICAgICAgICAgIEBjYXB0dXJlIHBhdGggL2UgL2UvIC9lLyogL2kvdjAgL2kvdjAvIC9pL3YwLyogL2kvdjEvYW5hbHl0aWNzL2V2ZW50cyAvaS92MS9hbmFseXRpY3MvZXZlbnRzLyAvYmF0Y2ggL2JhdGNoLyAvYmF0Y2gvKiAvY2FwdHVyZSAvY2FwdHVyZS8gL2NhcHR1cmUvKlxuICAgICAgICAgICAgQHJlcGxheS1jYXB0dXJlIHBhdGggL3MgL3MvIC9zLypcbiAgICAgICAgICAgIEBmbGFncyBwYXRoIC9mbGFncyAvZmxhZ3MvIC9mbGFncy8qIC9hcGkvZmVhdHVyZV9mbGFnL2xvY2FsX2V2YWx1YXRpb24gL2FwaS9mZWF0dXJlX2ZsYWcvbG9jYWxfZXZhbHVhdGlvbi8gL2FwaS9mZWF0dXJlX2ZsYWcvbG9jYWxfZXZhbHVhdGlvbi8qXG4gICAgICAgICAgICBAc3VydmV5cyBwYXRoIC9zdXJ2ZXlzIC9zdXJ2ZXlzLyAvYXBpL3N1cnZleXMgL2FwaS9zdXJ2ZXlzL1xuICAgICAgICAgICAgQHJlbW90ZS1jb25maWcgcGF0aCAvYXJyYXkvKlxuICAgICAgICAgICAgQHdlYmhvb2tzIHBhdGggL3B1YmxpYy93ZWJob29rcyAvcHVibGljL3dlYmhvb2tzLyAvcHVibGljL3dlYmhvb2tzLyogL3B1YmxpYy9tLyAvcHVibGljL20vKlxuICAgICAgICAgICAgQGxpdmVzdHJlYW0gcGF0aCAvbGl2ZXN0cmVhbSAvbGl2ZXN0cmVhbS8gL2xpdmVzdHJlYW0vKlxuICAgICAgICAgICAgQG9iamVjdHN0b3JhZ2UgcGF0aCAvcG9zdGhvZyAvcG9zdGhvZy8gL3Bvc3Rob2cvKlxuXG4gICAgICAgICAgICBoYW5kbGUgQGNhcHR1cmUge1xuICAgICAgICAgICAgICAgIHJldmVyc2VfcHJveHkgY2FwdHVyZTozMDAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoYW5kbGUgQHJlcGxheS1jYXB0dXJlIHtcbiAgICAgICAgICAgICAgICByZXZlcnNlX3Byb3h5IHJlcGxheS1jYXB0dXJlOjMwMDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhbmRsZSBAZmxhZ3Mge1xuICAgICAgICAgICAgICAgIHJldmVyc2VfcHJveHkgZmVhdHVyZS1mbGFnczozMDAxXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoYW5kbGUgQHN1cnZleXMge1xuICAgICAgICAgICAgICAgIHJldmVyc2VfcHJveHkgaHlwZXJjYWNoZS1zZXJ2ZXI6MzAwMlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGFuZGxlIEByZW1vdGUtY29uZmlnIHtcbiAgICAgICAgICAgICAgICByZXZlcnNlX3Byb3h5IGh5cGVyY2FjaGUtc2VydmVyOjMwMDJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhbmRsZSBAd2ViaG9va3Mge1xuICAgICAgICAgICAgICAgIHJldmVyc2VfcHJveHkgcGx1Z2luczo2NzM4XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoYW5kbGUgQGxpdmVzdHJlYW0ge1xuICAgICAgICAgICAgICAgIHVyaSBzdHJpcF9wcmVmaXggL2xpdmVzdHJlYW1cbiAgICAgICAgICAgICAgICByZXZlcnNlX3Byb3h5IGxpdmVzdHJlYW06ODA4MCB7XG4gICAgICAgICAgICAgICAgICAgIGZsdXNoX2ludGVydmFsIC0xXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGFuZGxlIEBvYmplY3RzdG9yYWdlIHtcbiAgICAgICAgICAgICAgICByZXZlcnNlX3Byb3h5IG9iamVjdHN0b3JhZ2U6MTkwMDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhbmRsZSB7XG4gICAgICAgICAgICAgICAgcmV2ZXJzZV9wcm94eSB3ZWI6ODAwMFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbnZvbHVtZXM6XG4gIHBvc3RncmVzLWRhdGE6XG4gIHJlZGlzLWRhdGE6XG4gIHpvb2tlZXBlci1kYXRhOlxuICB6b29rZWVwZXItZGF0YWxvZzpcbiAgcmVkcGFuZGEtZGF0YTpcbiAgY2xpY2tob3VzZS1kYXRhOlxuICBwb3N0aG9nLWFzc2V0czpcbiAgZ2VvaXAtZGF0YTpcbiAgb2JqZWN0c3RvcmFnZS1kYXRhOiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5zYWx0X2tleXMgPSBcIiR7aGFzaDozMn1cIlxuXG5bY29uZmlnXVxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwicHJveHlcIlxucG9ydCA9IDgwXG5ob3N0ID0gXCIke21haW5fZG9tYWlufVwiXG5wYXRoID0gXCIvXCJcblxuW2NvbmZpZy5lbnZdXG4jIFBvc3RIb2cgc3RvcHBlZCBwdWJsaXNoaW5nIHRhZ2dlZCByZWxlYXNlczsgaW1hZ2VzIGFyZSBwaW5uZWQgdG8gYSB0ZXN0ZWRcbiMgbWFzdGVyIGNvbW1pdC4gUE9TVEhPR19WRVJTSU9OIGlzIGJvdGggdGhlIHBvc3Rob2cvcG9zdGhvZyBpbWFnZSB0YWcgYW5kIHRoZVxuIyBnaXQgcmVmIHVzZWQgdG8gZmV0Y2ggdGhlIG1hdGNoaW5nIENsaWNrSG91c2UgY29uZmlndXJhdGlvbi5cblBPU1RIT0dfVkVSU0lPTiA9IFwiMWU3YjM2ZWJlMGRhMzhhNzM4ZmVkMjUwZDE3NTgwOWE4OTllZjQyMlwiXG5QT1NUSE9HX05PREVfVkVSU0lPTiA9IFwic2hhLTgyZWE2NjhcIlxuIyBTZXQgdG8gaHR0cHM6Ly88eW91ci1kb21haW4+IGFmdGVyIGVuYWJsaW5nIEhUVFBTIG9uIHRoZSBkb21haW5cblBPU1RIT0dfU0lURV9VUkwgPSBcImh0dHA6Ly8ke21haW5fZG9tYWlufVwiXG4jIFNldCB0byBcInRydWVcIiBvbmNlIHRoZSBkb21haW4gdXNlcyBIVFRQUyAobWFya3Mgc2Vzc2lvbi9DU1JGIGNvb2tpZXMgU2VjdXJlKVxuUE9TVEhPR19TRUNVUkVfQ09PS0lFUyA9IFwiZmFsc2VcIlxuUE9TVEhPR19TRUNSRVRfS0VZID0gXCIke3NlY3JldF9rZXl9XCJcblBPU1RIT0dfRU5DUllQVElPTl9TQUxUX0tFWVMgPSBcIiR7c2FsdF9rZXlzfVwiXG5cbltbY29uZmlnLm1vdW50c11dXG5maWxlUGF0aCA9IFwiL2RiLWluaXQvY3JlYXRlLWV4dHJhLWRicy5zaFwiXG5jb250ZW50ID0gXCJcIlwiXG4jIS9iaW4vYmFzaFxuIyBDcmVhdGVzIHRoZSBhdXhpbGlhcnkgZGF0YWJhc2VzIFBvc3RIb2cgc2VydmljZXMgY2FuIHBvaW50IGF0XG4jIChtaXJyb3JzIGRvY2tlci9wb3N0Z3Jlcy1pbml0LXNjcmlwdHMgaW4gdGhlIFBvc3RIb2cgcmVwbylcbnNldCAtZVxuc2V0IC11XG5cbmZvciBkYiBpbiBjeWNsb3Ryb24gcG9zdGhvZ19wZXJzb25zIGJlaGF2aW9yYWxfY29ob3J0czsgZG9cbiAgICBEQl9FWElTVFM9JChwc3FsIC1VIFwiJFBPU1RHUkVTX1VTRVJcIiAtdEFjIFwiU0VMRUNUIDEgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lPSckZGInXCIpXG4gICAgaWYgWyAteiBcIiREQl9FWElTVFNcIiBdOyB0aGVuXG4gICAgICAgIGVjaG8gXCJDcmVhdGluZyBkYXRhYmFzZSAnJGRiJy4uLlwiXG4gICAgICAgIHBzcWwgLVUgXCIkUE9TVEdSRVNfVVNFUlwiIC1jIFwiQ1JFQVRFIERBVEFCQVNFICRkYjtcIlxuICAgICAgICBwc3FsIC1VIFwiJFBPU1RHUkVTX1VTRVJcIiAtYyBcIkdSQU5UIEFMTCBQUklWSUxFR0VTIE9OIERBVEFCQVNFICRkYiBUTyAkUE9TVEdSRVNfVVNFUjtcIlxuICAgIGZpXG5kb25lXG5cIlwiXCJcblxuW1tjb25maWcubW91bnRzXV1cbmZpbGVQYXRoID0gXCIvbGl2ZXN0cmVhbS9jb25maWdzLnltbFwiXG5jb250ZW50ID0gXCJcIlwiXG5kZWJ1ZzogZmFsc2VcbmthZmthOlxuICAgIGJyb2tlcnM6ICdrYWZrYTo5MDkyJ1xuICAgIHRvcGljOiAnZXZlbnRzX3BsdWdpbl9pbmdlc3Rpb24nXG4gICAgZ3JvdXBfaWQ6ICdsaXZlc3RyZWFtJ1xuICAgIHNlY3VyaXR5X3Byb3RvY29sOiAnUExBSU5URVhUJ1xuICAgIHNlc3Npb25fcmVjb3JkaW5nX2VuYWJsZWQ6IHRydWVcbiAgICBzZXNzaW9uX3JlY29yZGluZ19zZWN1cml0eV9wcm90b2NvbDogJ1BMQUlOVEVYVCdcbmNvbnN1bWVyczpcbiAgICBldmVudDpcbiAgICAgICAgZW5hYmxlZDogdHJ1ZVxuICAgICAgICBicm9rZXJzOiAna2Fma2E6OTA5MidcbiAgICAgICAgdG9waWM6ICdldmVudHNfcGx1Z2luX2luZ2VzdGlvbidcbiAgICAgICAgc2VjdXJpdHlfcHJvdG9jb2w6ICdQTEFJTlRFWFQnXG4gICAgICAgIGdyb3VwX2lkOiAnbGl2ZXN0cmVhbSdcbiAgICBzZXNzaW9uX3JlY29yZGluZzpcbiAgICAgICAgZW5hYmxlZDogdHJ1ZVxuICAgICAgICBicm9rZXJzOiAna2Fma2E6OTA5MidcbiAgICAgICAgdG9waWM6ICdzZXNzaW9uX3JlY29yZGluZ19zbmFwc2hvdF9pdGVtX2V2ZW50cydcbiAgICAgICAgc2VjdXJpdHlfcHJvdG9jb2w6ICdQTEFJTlRFWFQnXG4gICAgICAgIGdyb3VwX2lkOiAnbGl2ZXN0cmVhbS1zZXNzaW9uLXJlY29yZGluZ3MnXG4gICAgbm90aWZpY2F0aW9uOlxuICAgICAgICBlbmFibGVkOiBmYWxzZVxubW1kYjpcbiAgICBwYXRoOiAnR2VvTGl0ZTItQ2l0eS5tbWRiJ1xuXCJcIlwiIgp9
The exact Docker Compose and template configuration this template deploys.
Self-hosted PostHog based on the official "hobby" deployment, trimmed to run on a single server.
The first deployment takes 5-10 minutes: an init container fetches the ClickHouse configuration and the GeoIP database, and the web service runs all Postgres and ClickHouse migrations before it starts serving. Watch the web service logs; once you see the Unit server start, open the domain and create the first account.
If you serve PostHog over HTTPS (recommended for production), update these environment variables and redeploy:
POSTHOG_SITE_URL to https://<your-domain> (otherwise logins/CSRF and SDK snippets point at the wrong scheme)POSTHOG_SECURE_COOKIES to true (marks session/CSRF cookies as Secure; the default false is what allows logging in over the initial plain-HTTP domain)Compared to the full upstream hobby stack, this template omits Temporal + Elasticsearch (data warehouse / batch exports), browserless (dashboard image exports and heatmap screenshots), and the error-tracking/logs/traces ingestion pipelines. Product analytics, feature flags, experiments, surveys, session replay, live events and the CDP destinations pipeline all work.
PostHog no longer publishes tagged releases; images are pinned to a tested master commit via the POSTHOG_VERSION and POSTHOG_NODE_VERSION environment variables. To upgrade, set POSTHOG_VERSION to a newer commit sha of posthog/posthog (Docker Hub tag) and redeploy.
Version: latest
Ackee is a self-hosted analytics tool for your website.
Version: v1.0.0
Aptabase is a self-hosted web analytics platform that lets you track website traffic and user behavior.
Version: latest
ClickHouse is an open-source column-oriented DBMS (columnar database management system) for online analytical processing (OLAP) that allows users to generate analytical reports using SQL queries in real-time. ClickHouse works 100-1000x faster than traditional database management systems, and processes hundreds of millions to over a billion rows and tens of gigabytes of data per server per second.
Version: 1.23.0
A modern, scalable business intelligence and data visualization system.
Version: 8.10.2
Elasticsearch is an open-source search and analytics engine, used for full-text search and analytics on structured data such as text, web pages, images, and videos.
Version: v3.1.3
Formbricks is an open-source survey and form platform for collecting user data.
Dokploy is a free, open source deployment platform. Deploy PostHog and 499+ other templates on your own infrastructure with a single click.