apiVersion: v1 data: .keep: '' centralhealth.py: IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwojIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQojIENvcHlyaWdodCAyMDI1IEluYy4KIyBBbGwgUmlnaHRzIFJlc2VydmVkLgojCiMgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkKIyAgICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbgojICAgIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAojCiMgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIyAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUCiMgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlCiMgICAgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKIyAgICB1bmRlciB0aGUgTGljZW5zZS4KCmltcG9ydCBkYXRldGltZQppbXBvcnQganNvbgppbXBvcnQgb3MKaW1wb3J0IHBzdXRpbAppbXBvcnQgc29ja2V0CmltcG9ydCBzeXMKCgpIRUFSVEJFQVRfU09DS0VUID0gIi92YXIvbGliL2NlaWxvbWV0ZXIvY2VpbG9tZXRlci1jZW50cmFsLnNvY2tldCIKUE9MTF9TUFJFQUQgPSBkYXRldGltZS50aW1lZGVsdGEobWludXRlcz0xNSkKCkNPTk5fU1BSRUFEID0gZGF0ZXRpbWUudGltZWRlbHRhKGhvdXJzPTEpClBST0NFU1NfTkFNRSA9ICJjZWlsb21ldGVyLXBvbGxpbmciClBST0NFU1NfQ09OTl9DQUNIRSA9ICIvdmFyL2xpYi9jZWlsb21ldGVyL3RtcC9jb25uZWN0aW9ucyIKIyBLZXlzdG9zbmUgNTAwMAojIENpbmRlciA4Nzc2CiMgR2xhbmNlIDkyOTIKIyBOZXV0cm9uIDk2OTYKUFJPQ0VTU19QT1JUUyA9IFs1MDAwLCA4Nzc2LCA5MjkyLCA5Njk2XQoKCmRlZiBjaGVja19wb2xsc3RlcnMoc29ja2V0X3BhdGg6IHN0cikgLT4gdHVwbGVbaW50LCBzdHJdOgogICAgIiIiCiAgICBSZXR1cm5zIDAgaWYgc29ja2V0X3BhdGggY29udGVudCBjb250YWlucyBhbGwgcmVjb3JkcwogICAgb2YgcG9sbGluZyBubyBvbGRlciB0aGFuIFBPTExfU1BSRUFELCBvdGhlcndpc2UgcmV0dXJucyAxLgogICAgIiIiCiAgICBzID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfVU5JWCwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgcy5jb25uZWN0KHNvY2tldF9wYXRoKQoKICAgIHJlcG9ydCA9ICIiCiAgICB0cnk6CiAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgZGF0YSA9IHMucmVjdigyMDQ4KQogICAgICAgICAgICBpZiBkYXRhOgogICAgICAgICAgICAgICAgcmVwb3J0ICs9IGRhdGEuZGVjb2RlKCd1dGYtOCcpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBicmVhawogICAgZmluYWxseToKICAgICAgICBzLmNsb3NlKCkKCiAgICBsaW1pdCA9IGRhdGV0aW1lLmRhdGV0aW1lLnRvZGF5KCkgLSBQT0xMX1NQUkVBRAogICAgZm9yIGxpbmUgaW4gcmVwb3J0LnNwbGl0KCdcbicpOgogICAgICAgIGlmIG5vdCBsaW5lOgogICAgICAgICAgICAjIFNraXAgZW1wdHkgbGluZSwgd2hpY2ggbWlnaHQgb2NjdXIgZm9yIGNhc2VzCiAgICAgICAgICAgICMgd2hlbiBubyBwb2xsc3RlciBoYWQgcG9sbGVkIHlldC4gSW4gc3VjaCBjYXNlCiAgICAgICAgICAgICMgd2UgYXNzdW1lIGFnZW50IGhlYWx0aHkgYXMgYXQgbGVhc3QgdGhlIHNvY2tldAogICAgICAgICAgICAjIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLgogICAgICAgICAgICBjb250aW51ZQogICAgICAgIHBvbGxzdGVyLCB0aW1lc3RyID0gbGluZS5zcGxpdCgpCiAgICAgICAgdGltZXN0YW1wID0gZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbWlzb2Zvcm1hdCh0aW1lc3RyKQoKICAgICAgICBpZiB0aW1lc3RhbXAgPCBsaW1pdDoKICAgICAgICAgICAgcmV0dXJuIDEsIGYie3BvbGxzdGVyfSdzIHRpbWVzdGFtcCBpcyBvdXQgb2YgbGltaXQiCiAgICByZXR1cm4gMCwgIiIKCgpkZWYgY2hlY2tfY29ubmVjdGlvbihjYWNoZV9wYXRoOiBzdHIsCiAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfbmFtZTogc3RyLAogICAgICAgICAgICAgICAgICAgICBwb3J0czogbGlzdFtpbnRdKSAtPiB0dXBsZVtpbnQsIHN0cl06CiAgICAiIiIKICAgIFJldHVybnMgMCBpZiBnaXZlbiBwcm9jZXNzIGlzIG9yIHdhcyByZWNlbnRseSBjb25uZWN0ZWQKICAgIHRvIHRoZSBnaXZlbiBwb3J0KHMpLiBPdGhlcndpc2UgcmV0dXJucyAxIG9yIDIgd2l0aCByZXNwZWN0aXZlCiAgICByZWFzb24gb2YgZmFpbHVyZS4KICAgICIiIgogICAgIyBOT1QobW1hZ3IpOiBwcm9jZXNzJyBjb25uZWN0aW9ucyBjYW4gYmUgZW1wdHkgaWYgd2UgaGl0IHRoZSBjYXNlCiAgICAjICAgICAgICAgICAgIHdoZW4gbm8gcG9sbHN0ZXIgd2FzIHBvbGxpbmcgZnJvbSBzb21lIEFQSSBkdXJpbmcgcnVubmluZwogICAgIyAgICAgICAgICAgICB0aGlzIHNjcmlwdC4gVGhlIHByZXZpb3VzIHZhbHVlcyB3aWxsIGJlIGNoZWNrZWQgZnJvbSBjYWNoZS4KICAgICMgICAgICAgICAgICAgSGVuY2UgdG8gYXZvaWQgZmFsc2UgbmVnYXRpdmVzIHdlIG5lZWQgbXVjaCBoaWdoZXIgc3ByZWFkCiAgICAjICAgICAgICAgICAgIHRoYW4gaW4gY2FzZSBvZiBoZWFydCBiZWF0IGNoZWNrCgogICAgIyBsb2FkIGNvbm5lY3Rpb24gY2FjaGUKICAgIGlmIG9zLnBhdGguaXNmaWxlKGNhY2hlX3BhdGgpOgogICAgICAgIHdpdGggb3BlbihjYWNoZV9wYXRoLCAiciIpIGFzIGNjaDoKICAgICAgICAgICAgY29ubnMgPSBqc29uLmxvYWQoY2NoKQogICAgZWxzZToKICAgICAgICBjb25ucyA9IGRpY3QoKQoKICAgICMgdXBkYXRlIGNvbm5lY3Rpb24gY2FjaGUgdmFsdWVzCiAgICBwcm9jZXNzZXMgPSBbcHJvYyBmb3IgcHJvYyBpbiBwc3V0aWwucHJvY2Vzc19pdGVyKCkKICAgICAgICAgICAgICAgICAgICBpZiBwcm9jZXNzX25hbWUgaW4gcHJvYy5uYW1lKCldCiAgICBpZiBub3QgcHJvY2Vzc2VzOgogICAgICAgIHJldHVybiAxLCBmIkdpdmVuIHByb2Nlc3Mge3Byb2Nlc3NfbmFtZX0gd2FzIG5vdCBmb3VuZCIKICAgIHBvcnRzID0gc2V0KHBvcnRzKQogICAgZm9yIHAgaW4gcHJvY2Vzc2VzOgogICAgICAgIGNvbm5fbWV0aG9kID0gZ2V0YXR0cihwLCAibmV0X2Nvbm5lY3Rpb25zIiwgcC5jb25uZWN0aW9ucykKICAgICAgICBmb3IgYyBpbiBjb25uX21ldGhvZCgpOgogICAgICAgICAgICBpZiBjLnJhZGRyLnBvcnQgbm90IGluIHBvcnRzOgogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAga2V5ID0gZiJ7Yy5yYWRkci5pcH0ve2MucmFkZHIucG9ydH0iCiAgICAgICAgICAgIGNvbm5zW2tleV0gPSBkaWN0KHRzPWRhdGV0aW1lLmRhdGV0aW1lLm5vdygpLnRpbWVzdGFtcCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcD1jLnJhZGRyLmlwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PWMucmFkZHIucG9ydCkKICAgIHdpdGggb3BlbihjYWNoZV9wYXRoLCAidyIpIGFzIGNjaDoKICAgICAgICBqc29uLmR1bXAoY29ubnMsIGNjaCkKCiAgICAjIGNoZWNrIGNvbm5lY3Rpb24gdGltZXN0YW1wcyBpbiB0aGUgY2FjaGUKICAgIGxpbWl0ID0gZGF0ZXRpbWUuZGF0ZXRpbWUudG9kYXkoKSAtIENPTk5fU1BSRUFECiAgICBmb3IgY29ubiBpbiBjb25ucy52YWx1ZXMoKToKICAgICAgICB0aW1lc3RhbXAgPSBkYXRldGltZS5kYXRldGltZS5mcm9tdGltZXN0YW1wKGNvbm5bInRzIl0pCiAgICAgICAgaWYgdGltZXN0YW1wIDwgbGltaXQ6CiAgICAgICAgICAgIG1zZyA9IChmIlRpbWVzdGFtcCBvZiBjb25uZWN0aW9uIHRvIHtjb25uWydpcCddfSIKICAgICAgICAgICAgICAgICAgIGYiIG9uIHBvcnQge2Nvbm5bJ3BvcnQnXX0gaXMgb3V0IG9mIGxpbWl0IikKICAgICAgICAgICAgcmV0dXJuIDEsIG1zZwoKICAgIHJldHVybiAwLCAiIgoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB0cnk6CiAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoSEVBUlRCRUFUX1NPQ0tFVCk6CiAgICAgICAgICAgICMgdmVyaWZ5IHBvbGxzdGVycycgaGVhcnQgYmVhdHMKICAgICAgICAgICAgcmMsIHJlYXNvbiA9IGNoZWNrX3BvbGxzdGVycyhIRUFSVEJFQVRfU09DS0VUKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgbWltaWMgaGVhcnQgYmVhdHMgY2hlY2sgb24gcHJvY2VzcycgY29ubmVjdGlvbnMKICAgICAgICAgICAgIyB0byB2YXJpb3VzIE9wZW5TdGFjayBBUElzIHdoZW4gdGhlIGhlYXJ0IGJlYXQgZmVhdHVyZQogICAgICAgICAgICAjIGlzIG5vdCBhdmFpbGFibGUKICAgICAgICAgICAgcmMsIHJlYXNvbiA9IGNoZWNrX2Nvbm5lY3Rpb24oUFJPQ0VTU19DT05OX0NBQ0hFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9DRVNTX05BTUUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST0NFU1NfUE9SVFMpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgogICAgICAgIHJjLCByZWFzb24gPSAyLCBmIlVua293biBlcnJvcjoge2V4fSIKCiAgICBpZiByYyAhPSAwOgogICAgICAgIHByaW50KHJlYXNvbikKICAgIHN5cy5leGl0KHJjKQo= common.sh: IyEvYmluLy9iYXNoCiMKIyBDb3B5cmlnaHQgMjAyMiBSZWQgSGF0IEluYy4KIwojIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5CiMgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4KIyBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKIwojICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgV0lUSE9VVAojIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZQojIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLWUKCmZ1bmN0aW9uIG1lcmdlX2NvbmZpZ19kaXIgewogICAgZWNobyBtZXJnZSBjb25maWcgZGlyICQxCiAgICBmb3IgY29uZiBpbiAkKGZpbmQgJDEgLXR5cGUgZik7IGRvCiAgICAgICAgY29uZl9iYXNlPSQoYmFzZW5hbWUgJGNvbmYpCgogICAgICAgICMgSWYgQ0ZHIGFscmVhZHkgZXhpc3QgaW4gLi4vbWVyZ2VkIGFuZCBpcyBub3QgYSBqc29uIGZpbGUsCiAgICAgICAgIyB3ZSBleHBlY3QgZm9yIG5vdyBpdCBjYW4gYmUgbWVyZ2VkIHVzaW5nIGNydWRpbmkuCiAgICAgICAgIyBFbHNlLCBqdXN0IGNvcHkgdGhlIGZ1bGwgZmlsZS4KICAgICAgICBpZiBbWyAtZiAvdmFyL2xpYi9jb25maWctZGF0YS9tZXJnZWQvJHtjb25mX2Jhc2V9ICYmICR7Y29uZl9iYXNlfSAhPSAqLmpzb24gXV07IHRoZW4KICAgICAgICAgICAgZWNobyBtZXJnaW5nICR7Y29uZn0gaW50byAvdmFyL2xpYi9jb25maWctZGF0YS9tZXJnZWQvJHtjb25mX2Jhc2V9CiAgICAgICAgICAgIGNydWRpbmkgLS1tZXJnZSAvdmFyL2xpYi9jb25maWctZGF0YS9tZXJnZWQvJHtjb25mX2Jhc2V9IDwgJHtjb25mfQogICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyBjb3B5ICR7Y29uZn0gdG8gL3Zhci9saWIvY29uZmlnLWRhdGEvbWVyZ2VkLwogICAgICAgICAgICBjcCAtZiAke2NvbmZ9IC92YXIvbGliL2NvbmZpZy1kYXRhL21lcmdlZC8KICAgICAgICBmaQogICAgZG9uZQp9Cg== notificationhealth.py: IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwojIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQojIENvcHlyaWdodCAyMDI1IEluYy4KIyBBbGwgUmlnaHRzIFJlc2VydmVkLgojCiMgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkKIyAgICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbgojICAgIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAojCiMgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIyAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUCiMgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlCiMgICAgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKIyAgICB1bmRlciB0aGUgTGljZW5zZS4KCmltcG9ydCBkYXRldGltZQppbXBvcnQganNvbgppbXBvcnQgb3MKaW1wb3J0IHBzdXRpbAppbXBvcnQgc3lzCgoKQ09OTl9TUFJFQUQgPSBkYXRldGltZS50aW1lZGVsdGEobWludXRlcz01KQpQUk9DRVNTX05BTUUgPSAiY2VpbG9tZXRlci1hZ2VudC1ub3RpZmljYXRpb24iClBST0NFU1NfQ09OTl9DQUNIRSA9ICIvdmFyL2xpYi9jZWlsb21ldGVyL3RtcC9jb25uZWN0aW9ucyIKUFJPQ0VTU19QT1JUUyA9IFs1NjcyXQoKCmRlZiBjaGVja19jb25uZWN0aW9uKGNhY2hlX3BhdGg6IHN0ciwKICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc19uYW1lOiBzdHIsCiAgICAgICAgICAgICAgICAgICAgIHBvcnRzOiBsaXN0W2ludF0pIC0+IHR1cGxlW2ludCwgc3RyXToKICAgICIiIgogICAgUmV0dXJucyAwIGlmIGdpdmVuIHByb2Nlc3MgaXMgb3Igd2FzIHJlY2VudGx5IGNvbm5lY3RlZAogICAgdG8gdGhlIGdpdmVuIHBvcnQocykuIE90aGVyd2lzZSByZXR1cm5zIDEgb3IgMiB3aXRoIHJlc3BlY3RpdmUKICAgIHJlYXNvbiBvZiBmYWlsdXJlLgogICAgIiIiCiAgICAjIGxvYWQgY29ubmVjdGlvbiBjYWNoZQogICAgaWYgb3MucGF0aC5pc2ZpbGUoY2FjaGVfcGF0aCk6CiAgICAgICAgd2l0aCBvcGVuKGNhY2hlX3BhdGgsICJyIikgYXMgY2NoOgogICAgICAgICAgICBjb25ucyA9IGpzb24ubG9hZChjY2gpCiAgICBlbHNlOgogICAgICAgIGNvbm5zID0gZGljdCgpCgogICAgIyB1cGRhdGUgY29ubmVjdGlvbiBjYWNoZSB2YWx1ZXMKICAgIHByb2Nlc3NlcyA9IFtwcm9jIGZvciBwcm9jIGluIHBzdXRpbC5wcm9jZXNzX2l0ZXIoKQogICAgICAgICAgICAgICAgICAgIGlmIHByb2Nlc3NfbmFtZSBpbiBwcm9jLm5hbWUoKV0KICAgIGlmIG5vdCBwcm9jZXNzZXM6CiAgICAgICAgcmV0dXJuIDEsIGYiR2l2ZW4gcHJvY2VzcyB7cHJvY2Vzc19uYW1lfSB3YXMgbm90IGZvdW5kIgogICAgcG9ydHMgPSBzZXQocG9ydHMpCiAgICBmb3IgcCBpbiBwcm9jZXNzZXM6CiAgICAgICAgY29ubl9tZXRob2QgPSBnZXRhdHRyKHAsICJuZXRfY29ubmVjdGlvbnMiLCBwLmNvbm5lY3Rpb25zKQogICAgICAgIGZvciBjIGluIGNvbm5fbWV0aG9kKCk6CiAgICAgICAgICAgIGlmIGMucmFkZHIucG9ydCBub3QgaW4gcG9ydHM6CiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICBrZXkgPSBmIntjLnJhZGRyLmlwfS97Yy5yYWRkci5wb3J0fSIKICAgICAgICAgICAgY29ubnNba2V5XSA9IGRpY3QodHM9ZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkudGltZXN0YW1wKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwPWMucmFkZHIuaXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9Yy5yYWRkci5wb3J0KQogICAgd2l0aCBvcGVuKGNhY2hlX3BhdGgsICJ3IikgYXMgY2NoOgogICAgICAgIGpzb24uZHVtcChjb25ucywgY2NoKQoKICAgICMgY2hlY2sgY29ubmVjdGlvbiB0aW1lc3RhbXBzIGluIHRoZSBjYWNoZQogICAgbGltaXQgPSBkYXRldGltZS5kYXRldGltZS50b2RheSgpIC0gQ09OTl9TUFJFQUQKICAgIGZvciBjb25uIGluIGNvbm5zLnZhbHVlcygpOgogICAgICAgIHRpbWVzdGFtcCA9IGRhdGV0aW1lLmRhdGV0aW1lLmZyb210aW1lc3RhbXAoY29ublsidHMiXSkKICAgICAgICBpZiB0aW1lc3RhbXAgPCBsaW1pdDoKICAgICAgICAgICAgbXNnID0gKGYiVGltZXN0YW1wIG9mIGNvbm5lY3Rpb24gdG8ge2Nvbm5bJ2lwJ119IgogICAgICAgICAgICAgICAgICAgZiIgb24gcG9ydCB7Y29ublsncG9ydCddfSBpcyBvdXQgb2YgbGltaXQiKQogICAgICAgICAgICByZXR1cm4gMSwgbXNnCgogICAgcmV0dXJuIDAsICIiCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHRyeToKICAgICAgICByYywgcmVhc29uID0gY2hlY2tfY29ubmVjdGlvbihQUk9DRVNTX0NPTk5fQ0FDSEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPQ0VTU19OQU1FLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST0NFU1NfUE9SVFMpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgogICAgICAgIHJjLCByZWFzb24gPSAyLCBmIlVua293biBlcnJvcjoge2V4fSIKCiAgICBpZiByYyAhPSAwOgogICAgICAgIHByaW50KHJlYXNvbikKICAgIHN5cy5leGl0KHJjKQo= kind: Secret metadata: creationTimestamp: '2025-10-11T10:54:21Z' labels: ceilometer.openstack.org/name: ceilometer ceilometer.openstack.org/namespace: openstack ceilometer.openstack.org/uid: dbcbe67a-bba0-4b81-a2dc-561e4a825494 name: ceilometer-scripts namespace: openstack ownerReferences: - apiVersion: telemetry.openstack.org/v1beta1 blockOwnerDeletion: true controller: true kind: Ceilometer name: ceilometer uid: dbcbe67a-bba0-4b81-a2dc-561e4a825494 resourceVersion: '38732' uid: 8243b5e5-272c-4018-a29b-a6098cfa7b4a type: Opaque