1day
timeshift
timerange
start_of_day
start_of_week
start_of_mounth
start_of_year
end_of_mounth
timerange_start
end_of_day
end_of_week
end_of_year
timerange_stop
start_of_mounth_-12mo
aggregate_window
date&time_title
Zeiteinheit vor schalten
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift_plus
ne
timeshift
val
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift
timeshift
50
ADD
1
timeshift
1
-365
0
Zeiteinheit zurück schalten
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift_minus
ne
timeshift
val
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift
timeshift
50
MINUS
1
timeshift
1
-365
0
Graph auf Tageswerte und auf Heute setzten, wenn View aktiviert wird
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_activ_View
ne
EQ
val
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_activ_View
4
EQ
val
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Timerange
1
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift
FALSE
0
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_activ_View
FALSE
0
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift
FALSE
0
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Timerange
FALSE
1
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_activ_View
FALSE
0
Graph auf Heute setzten, wenn Zeitrange gewechselt wird
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Timerange
ne
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift
FALSE
0
get_start_of_day
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQpjdXJyZW50RGF0ZS5zZXREYXRlKGN1cnJlbnREYXRlLmdldERhdGUoKSArIHRpbWVzaGlmdCk7IC8vIFZlcnNjaGllYnVuZyBkZXMgVGFnZXMgdW0gJ3RpbWVzaGlmdCcgVGFnZSB6dXLDvGNrDQpjdXJyZW50RGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTsgLy8gU2V0enQgZGllIFN0dW5kZW4sIE1pbnV0ZW4sIFNla3VuZGVuIHVuZCBNaWxsaXNla3VuZGVuIGF1ZiBudWxsLCB1bSBkZW4gVGFnZXNhbmZhbmcgenUgZXJoYWx0ZW4NCnZhciB1bml4VGltZXN0YW1wID0gY3VycmVudERhdGUuZ2V0VGltZSgpOyAvLyBVbml4LVplaXRzdGVtcGVsDQoNCnJldHVybiB1bml4VGltZXN0YW1wOw==
Describe this function...
get_end_of_day
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQpjdXJyZW50RGF0ZS5zZXREYXRlKGN1cnJlbnREYXRlLmdldERhdGUoKSArIHRpbWVzaGlmdCk7IC8vIFZlcnNjaGllYnVuZyBkZXMgVGFnZXMgdW0gJ3RpbWVzaGlmdCcgVGFnZSB6dXLDvGNrDQpjdXJyZW50RGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpOyAvLyBTZXR6dCBkaWUgU3R1bmRlbiwgTWludXRlbiwgU2VrdW5kZW4gdW5kIE1pbGxpc2VrdW5kZW4gYXVmIGRpZSBsZXR6dGUgU2VrdW5kZSBkZXMgVGFnZXMNCnZhciB1bml4VGltZXN0YW1wID0gY3VycmVudERhdGUuZ2V0VGltZSgpOyAvLyBVbml4LVplaXRzdGVtcGVsDQoNCnJldHVybiB1bml4VGltZXN0YW1wOw==
Describe this function...
get_start_of_week
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQoNCi8vIFZlcnNjaGllYnQgZGFzIERhdHVtIGF1ZiBkZW4gTW9udGFnIGRlciBha3R1ZWxsZW4gV29jaGUNCmN1cnJlbnREYXRlLnNldERhdGUoY3VycmVudERhdGUuZ2V0RGF0ZSgpIC0gKGN1cnJlbnREYXRlLmdldERheSgpICsgNikgJSA3ICsgKHRpbWVzaGlmdCAqIDcpKTsNCg0KY3VycmVudERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7IC8vIFNldHp0IGRpZSBTdHVuZGVuLCBNaW51dGVuLCBTZWt1bmRlbiB1bmQgTWlsbGlzZWt1bmRlbiBhdWYgbnVsbCwgdW0gZGVuIFdvY2hlbmFuZmFuZyB6dSBlcmhhbHRlbg0KdmFyIHVuaXhUaW1lc3RhbXAgPSBjdXJyZW50RGF0ZS5nZXRUaW1lKCk7IC8vIFVuaXgtWmVpdHN0ZW1wZWwNCg0KcmV0dXJuIHVuaXhUaW1lc3RhbXA7
Describe this function...
get_end_of_week
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQoNCi8vIFZlcnNjaGllYnQgZGFzIERhdHVtIGF1ZiBkZW4gTW9udGFnIGRlciBha3R1ZWxsZW4gV29jaGUNCmN1cnJlbnREYXRlLnNldERhdGUoY3VycmVudERhdGUuZ2V0RGF0ZSgpIC0gKGN1cnJlbnREYXRlLmdldERheSgpICsgNikgJSA3ICsgNiArICh0aW1lc2hpZnQgKiA3KSk7DQoNCmN1cnJlbnREYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApOyAvLyBTZXR6dCBkaWUgU3R1bmRlbiwgTWludXRlbiwgU2VrdW5kZW4gdW5kIE1pbGxpc2VrdW5kZW4gYXVmIG51bGwsIHVtIGRlbiBXb2NoZW5hbmZhbmcgenUgZXJoYWx0ZW4NCnZhciB1bml4VGltZXN0YW1wID0gY3VycmVudERhdGUuZ2V0VGltZSgpOyAvLyBVbml4LVplaXRzdGVtcGVsDQoNCnJldHVybiB1bml4VGltZXN0YW1wOw==
Describe this function...
get_week_number
dmFyIGRhdGUgPSBuZXcgRGF0ZShlbmRfb2Zfd2VlayArIHRpbWVzaGlmdCk7DQp2YXIgY3VycmVudFRodXJzZGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKygzLSgoZGF0ZS5nZXREYXkoKSs2KSAlIDcpKSAqIDg2NDAwMDAwKTsNCnZhciB5ZWFyT2ZUaHVyc2RheSA9IGN1cnJlbnRUaHVyc2RheS5nZXRGdWxsWWVhcigpOw0KdmFyIGZpcnN0VGh1cnNkYXkgPSBuZXcgRGF0ZShuZXcgRGF0ZSh5ZWFyT2ZUaHVyc2RheSwwLDQpLmdldFRpbWUoKSArKDMtKChuZXcgRGF0ZSh5ZWFyT2ZUaHVyc2RheSwwLDQpLmdldERheSgpKzYpICUgNykpICogODY0MDAwMDApOw0KdmFyIHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKDEgKyAwLjUgKyAoY3VycmVudFRodXJzZGF5LmdldFRpbWUoKSAtIGZpcnN0VGh1cnNkYXkuZ2V0VGltZSgpKSAvIDg2NDAwMDAwLzcpOw0KDQp2YXIgZm9ybWF0dGVkV2Vla051bWJlciA9ICgiMCIgKyB3ZWVrTnVtYmVyKS5zbGljZSgtMik7IC8vIEbDvGd0IGVpbmUgZsO8aHJlbmRlIDAgaGluenUsIGZhbGxzIGRpZSBXb2NoZW5udW1tZXIgZWluc3RlbGxpZyBpc3QNCg0KcmV0dXJuIGZvcm1hdHRlZFdlZWtOdW1iZXI7
Describe this function...
get_start_of_mounth
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQpjdXJyZW50RGF0ZS5zZXRNb250aChjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgdGltZXNoaWZ0KTsgLy8gVmVyc2NoaWVidW5nIGRlcyBNb25hdHMgdW0gJ3RpbWVzaGlmdCcgTW9uYXRlIHp1csO8Y2sNCnZhciBzdGFydE9mTW9udGggPSBuZXcgRGF0ZShjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpLCBjdXJyZW50RGF0ZS5nZXRNb250aCgpLCAxKTsgLy8gRXJzdGVyIFRhZyBkZXMgTW9uYXRzDQp2YXIgdW5peFRpbWVzdGFtcCA9IHN0YXJ0T2ZNb250aC5nZXRUaW1lKCk7IC8vIFVuaXgtWmVpdHN0ZW1wZWwNCiAgDQpyZXR1cm4gdW5peFRpbWVzdGFtcDs=
Describe this function...
get_end_of_mounth
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQpjdXJyZW50RGF0ZS5zZXRNb250aChjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgdGltZXNoaWZ0KTsgLy8gVmVyc2NoaWVidW5nIGRlcyBNb25hdHMgdW0gJ3RpbWVzaGlmdCcgTW9uYXRlIHp1csO8Y2sNCnZhciBlbmRPZk1vbnRoID0gbmV3IERhdGUoY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEsIDApOyAvLyBMZXR6dGVyIFRhZyBkZXMgTW9uYXRzDQp2YXIgdW5peFRpbWVzdGFtcCA9IGVuZE9mTW9udGguZ2V0VGltZSgpOyAvLyBVbml4LVplaXRzdGVtcGVsDQogIA0KcmV0dXJuIHVuaXhUaW1lc3RhbXA7
Describe this function...
get_start_of_year
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQpjdXJyZW50RGF0ZS5zZXRGdWxsWWVhcihjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpICsgdGltZXNoaWZ0KTsgLy8gVmVyc2NoaWVidW5nIGRlcyBKYWhyZXMgdW0gJ3RpbWVzaGlmdCcgSmFocmUgenVyw7xjaw0KY3VycmVudERhdGUuc2V0TW9udGgoMCk7IC8vIFNldHp0IGRlbiBNb25hdCBhdWYgSmFudWFyICgwLWluZGV4ZWQsIGFsc28gSmFudWFyID0gMCkNCmN1cnJlbnREYXRlLnNldERhdGUoMSk7IC8vIFNldHp0IGRlbiBUYWcgYXVmIGRlbiBlcnN0ZW4gVGFnIGRlcyBNb25hdHMgIA0KdmFyIHVuaXhUaW1lc3RhbXAgPSBjdXJyZW50RGF0ZS5nZXRUaW1lKCk7IC8vIFVuaXgtWmVpdHN0ZW1wZWwNCg0KcmV0dXJuIHVuaXhUaW1lc3RhbXA7
Describe this function...
get_end_of_year
dmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLy8gQWt0dWVsbGVzIERhdHVtDQpjdXJyZW50RGF0ZS5zZXRGdWxsWWVhcihjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpICsgdGltZXNoaWZ0KTsgLy8gVmVyc2NoaWVidW5nIGRlcyBKYWhyZXMgdW0gJ3RpbWVzaGlmdCcgSmFocmUgenVyw7xjaw0KY3VycmVudERhdGUuc2V0TW9udGgoMTEpOyAvLyBTZXR6dCBkZW4gTW9uYXQgYXVmIERlemVtYmVyICgxMS1pbmRleGVkLCBhbHNvIERlemVtYmVyID0gMTEpDQpjdXJyZW50RGF0ZS5zZXREYXRlKDMxKTsgLy8gU2V0enQgZGVuIFRhZyBhdWYgZGVuIGxldHp0ZW4gVGFnIGRlcyBNb25hdHMgKDMxLiBEZXplbWJlcikNCnZhciB1bml4VGltZXN0YW1wID0gY3VycmVudERhdGUuZ2V0VGltZSgpOyAvLyBVbml4LVplaXRzdGVtcGVsDQoNCnJldHVybiB1bml4VGltZXN0YW1wOw==
Describe this function...
get_influx_set_json
Ly8gIyMjIyMjIyMjIyMjIyMjIyMjIyMgQXVzbMO2c2VyIChUcmlnZ2VyKSwgZGllIGRhcyBKU09OLU9iamVrdCBuZXUgZXJ6ZXVnZW4gIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiANCi8vIFplaXRnZXN0ZXVlcnQNCi8vIHNjaGVkdWxlKHttaW51dGU6IFswMV19LCByZWZyZXNoKTsNCiANCi8vIEJlaSDDhG5kZXJ1bmcgZWluZXMgRGF0ZW5wdW5rdGVzDQovLyBIaWVyIGJlaSBVbXNjaGFsdHVuZyB6d2lzY2hlbiBMaWdodC9EYXJrLU1vZGUsIGZhbGxzIG1hbiBpbSBKU09OIEZhcmJlbi1Qcm9wZXJ0aWVzIHNldHp0ZW4gbcO2Y2h0ZQ0KLy8gb24oJ3Zpcy1tYXRlcmlhbGRlc2lnbi4wLmNvbG9ycy5kYXJrVGhlbWUnLCBmdW5jdGlvbiAob2JqKSB7DQovLyAgICAgcmVmcmVzaCgpOw0KLy8gfSk7DQogDQovLyBCZWltIFNwZWljaGVybiBvZGVyIFN0YXJ0ZW4gZGVzIFNrcmlwdGVzDQpyZWZyZXNoKCk7DQogDQovLyBHZXNhbXRlciBTa3JpcHRjb2RlIGlzdCBpbiBkZXIgRnVua3Rpb24gcmVmcmVzaCgpIGVpbmdlYmV0dGV0LiBEaWVzZSBGdW5rdGlvbiB3aXJkIMO8YmVyIGRpZSBUcmlnZ2VyIG9iZW4gYXVmZ2VydWZlbg0KZnVuY3Rpb24gcmVmcmVzaCgpIHsNCiANCiAgICAvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyBTa3JpcHQtRWluc3RlbGx1bmdlbiAjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIA0KICAgIC8vIEhpc3RvcnkgSW5zdGFueiBkaWUgdmVyd2VuZGV0IHdlcmRlbiBzb2xsDQogICAgbGV0IGhpc3RvcnlJbnN0YW5jZSA9ICdpbmZsdXhkYi4wJzsNCiANCiAgICAvLyBaaWVsLURhdGVucHVua3QgaW4gZGVyIE9iamVrdHN0cnVrdHVyIGbDvHIgZGFzIEpTT04gdm9tIFR5cCAic3RyaW5nIiwgYXVmIGRlbiBpbSBXaWRnZXQgdmVyd2llc2VuIHdpcmQuIE11c3MgenV2b3Igdm9uIEhhbmQgYW5nZWxlZ3Qgd2VyZGVuDQogICAgbGV0IHRhcmdldERQID0gJzBfdXNlcmRhdGEuMC5EaWFncmFtbXN0ZXVlcnVuZy5FbmVyZ2llLldQX1BPV19TRVRfanNvbic7DQogDQogICAgLy8gRGVidWctTW9kZSAodHJ1ZS9mYWxzZSkNCiAgICAvLyBHaWJ0IGJlaSB0cnVlIGluIGRlciBTa3JpcHQtQ29uc29sZSB1bmQgaW0gaW9Ccm9rZXItUHJvdG9rb2xsIEluaGFsdGUgdm9uIFZlcmFyYmVpdHVuZ3NzY2hyaXR0ZW4gYXVzICh6LkIuIGRhcyBFcmdlYm5pcyBkZXIgRmx1eC1BYmZyYWdlIHVuZCBkYXMgZmVydGlnZSBKU09OKQ0KICAgIGxldCBkZWJ1ZyA9IGZhbHNlOw0KIA0KICAgIC8vIEhpZXIgb3B0aW9uYWwgRmFyYmVuLCBTY2hyaWZ0ZW4gdW5kIFNjaHJpZnRncsO2w59lbiBhdXMgZGVuIE1hdGVyaWFsLURlc2lnbi1XaWRnZXQtIG9kZXIgYW5kZXJlbiBlaWdlbmVuIERhdGVucHVua3RlbiBob2xlbiwgZmFsbHMgc29sY2hlIEpTT04tQ2hhcnQtUHJvcGVydGllcyBnZXNldHp0IHdlcmRlbiBzb2xsZW4NCiANCiAgICAvLyBPcHRpb25hbCBkZW4gRGF0ZW5wdW5rdCBhYmZyYWdlbiwgbWl0IGRlbSB6d2lzY2hlbiBMaWdodC9EYXJrLVRoZW1lIHVtZ2VzY2hhbHRldCB3aXJkDQogICAgLy8gbGV0IG1kd19kYXJrVGhlbWUgPSBnZXRTdGF0ZSgndmlzLW1hdGVyaWFsZGVzaWduLjAuY29sb3JzLmRhcmtUaGVtZScpLnZhbDsNCiANCiAgICAvLyBWYXJpYWJsZShuKSBtaXQgRmFyYmNvZGVzIGF1cyBEYXRlbnB1bmt0ZW4gaW4gQWJow6RuZ2lna2VpdCB2b24gTGlnaHQvRGFyay1UaGVtZSBmw7xsbGVuLCBkaWUgdW50ZW4gaW4gZGVuIENoYXJ0LUVpbnN0ZWxsdW5nZW4gdmVyd2VuZGV0IHdlcmRlbiBzb2xsZW4NCiAgICAvLyBsZXQgbWR3X2RhdGFsYWJlbF9jb2xvcl9rV2ggICAgID0gKG1kd19kYXJrVGhlbWUpID8gZ2V0U3RhdGUoJ3Zpcy1tYXRlcmlhbGRlc2lnbi4wLmNvbG9ycy5kYXJrLmNoYXJ0cy52YWx1ZScpLnZhbCA6IGdldFN0YXRlKCd2aXMtbWF0ZXJpYWxkZXNpZ24uMC5jb2xvcnMubGlnaHQuY2hhcnRzLnZhbHVlJykudmFsOw0KICAgIC8vIGxldCBtZHdfbGluZV9jb2xvcl90ZW1wT3V0ICAgICAgPSAobWR3X2RhcmtUaGVtZSkgPyBnZXRTdGF0ZSgnMF91c2VyZGF0YS4wLlZJUy5BbGxnZW1laW5lX0ZhcmJlbi5kYXJrLkF1c3NlbnRlbXBlcmF0dXInKS52YWwgOiBnZXRTdGF0ZSgnMF91c2VyZGF0YS4wLlZJUy5BbGxnZW1laW5lX0ZhcmJlbi5saWdodC5BdXNzZW50ZW1wZXJhdHVyJykudmFsOw0KICAgIC8vIGxldCBtZHdfZGF0YWxhYmVsX2NvbG9yX3RlbXBPdXQgPSAobWR3X2RhcmtUaGVtZSkgPyBnZXRTdGF0ZSgnMF91c2VyZGF0YS4wLlZJUy5BbGxnZW1laW5lX0ZhcmJlbi5kYXJrLkF1c3NlbnRlbXBlcmF0dXInKS52YWwgOiBnZXRTdGF0ZSgnMF91c2VyZGF0YS4wLlZJUy5BbGxnZW1laW5lX0ZhcmJlbi5saWdodC5BdXNzZW50ZW1wZXJhdHVyJykudmFsOw0KIA0KICAgIC8vIER0by4gZsO8ciBTY2hyaWZ0YXJ0KGVuKSB1bmQgU2NocmlmdGdyw7bDn2UobikNCiAgICAvLyBsZXQgbWR3X2RhdGFsYWJlbF9mb250RmFtaWx5ICAgID0gZ2V0U3RhdGUoJ3Zpcy1tYXRlcmlhbGRlc2lnbi4wLmZvbnRzLmNoYXJ0cy52YWx1ZScpLnZhbDsNCiAgICAvLyBsZXQgbWR3X2RhdGFsYWJlbF9mb250U2l6ZSAgICAgID0gZ2V0U3RhdGUoJ3Zpcy1tYXRlcmlhbGRlc2lnbi4wLmZvbnRTaXplcy5jaGFydHMudmFsdWUnKS52YWw7DQoNCiAgICAvLyBUaW1lIFJhbmdlIHdpcmQgYXVzIGRlbiBEYXRlbnB1bmt0ZW4gYXVzZ2VsZXNlbg0KICAgIGxldCBzdGFydCA9IGdldFN0YXRlKCcwX3VzZXJkYXRhLjAuRGlhZ3JhbW1zdGV1ZXJ1bmcuRW5lcmdpZS5XUF9QT1dfU0VUX1RpbWVyYW5nZV9zdGFydCcpLnZhbDsNCiAgICBsZXQgc3RvcCA9IGdldFN0YXRlKCcwX3VzZXJkYXRhLjAuRGlhZ3JhbW1zdGV1ZXJ1bmcuRW5lcmdpZS5XUF9QT1dfU0VUX1RpbWVyYW5nZV9zdG9wJykudmFsOw0KICAgIGxldCBldmVyeSA9IGdldFN0YXRlKCcwX3VzZXJkYXRhLjAuRGlhZ3JhbW1zdGV1ZXJ1bmcuRW5lcmdpZS5XUF9QT1dfU0VUX2FnZ3JlZ2F0ZV9XaW5kb3cnKS52YWw7DQogICAgbGV0IHRlc3QgPSAnVGVzdCcNCiAgICAvLyBsZXQgc3RhcnQgPSAiMjAyMy0wNi0wNVQwMDowMDowMFoiOyAvLyBTZXR6ZSBkZW4gZ2V3w7xuc2NodGVuIFN0YXJ0d2VydCBoaWVyDQogICAgLy8gbGV0IHN0b3AgPSAiMjAyMy0wNi0xMVQyMzo1OTo1OVoiOyAvLyBTZXR6ZSBkZW4gZ2V3w7xuc2NodGVuIFN0b3B3ZXJ0IGhpZXINCiANCiAgICAvLyBHZW1laW5zYW0gdmVyd2VuZGV0ZSBDaGFydC1FaW5zdGVsbHVuZ2VuLCBEZXRhaWxzIHNpZWhlIGh0dHBzOi8vZ2l0aHViLmNvbS9TY3JvdW5nZXIvaW9Ccm9rZXIudmlzLW1hdGVyaWFsZGVzaWduI2pzb24tY2hhcnQNCiAgICAvLyBIaW53ZWlzOiBXZWl0ZXJlIEVpbnN0ZWxsb3B0aW9uZW4genUgTGVnZW5kZSwgeC1BY2hzZSBldGMuIGJlZmluZGVuIHNpY2ggaW4gZGVuIEVpZ2Vuc2NoYWZ0ZW4gZGVzIFdpZGdldHMhDQogDQogICAgbGV0IGdsb2JhbEdyYXBoU2V0dGluZ3MgPSB7DQogICAgICAgIGxpbmVfcG9pbnRTaXplOiAwLjAwMDAwMDAwMDAwMDAwMDAwMSwgICAgICAgICAgLy8gTGluaWVucHVua3RncsO2w59lDQogICAgICAgIGxpbmVfcG9pbnRTaXplSG92ZXI6IDAuMDAwMDAwMDAwMDAwMDAwMDAxLCAgICAgLy8gTGluaWVucHVua3RncsO2w59lID9zY2h3ZWJlbmQ/DQoJICAgIGxpbmVfVGVuc2lvbjogMC4wMDAwMDAwMDAwMDAwMDAwMDEsICAgICAgICAgICAgLy8gTGllbmllbnNwYW5udW5nDQogICAgICAgIGxpbmVfVGhpY2tuZXNzOiAwLjAwMDAwMDAwMDAwMDAwMDAwMSwgICAgICAgICAgLy8gTGllbmllbmJyZWl0ZQ0KICAgICAgICAvLyB0b29sdGlwX3RpdGxlOiAnVGVzdCcsICAgICAgICAgICAgICAgICAgICAgIC8vIFRvb2x0aXAgw5xiZXJzY2hyaWZ0DQogICAgICAgIHRvb2x0aXBfTWluRGlnaXRzOiAzLA0KICAgICAgICB0b29sdGlwX01heERpZ2l0czogMywNCiAgICAgICAgdG9vbHRpcF9BcHBlbmRUZXh0OiAnIGtXaCcsDQogICAgICAgIC8vIGRhdGFsYWJlbF9mb250RmFtaWx5OiAnUm9ib3RvQ29uZGVuc2VkLUxpZ2h0JywNCiAgICAgICAgLy8gZGF0YWxhYmVsX2ZvbnRTaXplOiA1MCwNCiAgICAgICAgeUF4aXNfaWQ6IDAsDQogICAgICAgIHlBeGlzX3Nob3c6IHRydWUsDQogICAgICAgIHlBeGlzX21pbmltdW1EaWdpdHM6IDEsDQogICAgICAgIHlBeGlzX21heGltdW1EaWdpdHM6IDEsDQogICAgICAgIHlBeGlzX2FwcGVuZGl4OiAnIGtXaCcsDQogICAgICAgIHlBeGlzX21pbjogMCwNCiAgICAgICAgLy8geUF4aXNfbWF4OiA4MDAwLA0KICAgICAgICB4QXhpc19ib3VuZHM6ICdkYXRhJywNCiAgICAgICAgeEF4aXNfdGltZUZvcm1hdHM6IHsNCiAgICAgICAgICAgIG1pbGxpc2Vjb25kOiAiSDptbTpzcy5TU1MiLA0KICAgICAgICAgICAgc2Vjb25kOiAiSDptbTpzcyIsDQogICAgICAgICAgICBtaW51dGU6ICJIOm1tIiwNCiAgICAgICAgICAgIGhvdXI6ICJISDptbSIsDQogICAgICAgICAgICAvLyBob3VyOiAiZGQuW1xcbl1IOm1tIiwNCiAgICAgICAgICAgIGRheTogIkRELk1NIiwNCiAgICAgICAgICAgIC8vIGRheTogImRkW1xcbl1ERC5NTSIsDQogICAgICAgICAgICB3ZWVrOiAiREQuTU0iLA0KICAgICAgICAgICAgLy8gd2VlazogImRkW1xcbl1ERC5NTSIsDQogICAgICAgICAgICBtb250aDogIk1NTSBZWVlZIiwNCiAgICAgICAgICAgIC8vIG1vbnRoOiAiTU1NW1xcbl1ZWVlZIiwNCiAgICAgICAgICAgIHF1YXJ0ZXI6ICJbUV1RIC0gWVlZWSIsDQogICAgICAgICAgICB5ZWFyOiAiWVlZWSINCiAgICAgICAgfQ0KICAgIH0NCiANCiAgICAvLyBJbmZsdXhEQi1GbHV4LVF1ZXJ5KHMpLCBkaWUgdmVyd2VuZGV0IHdlcmRlbiBzb2xsZW4gdW5kIGRpZSB6dWdlaMO2cmlnZW4gaW5kaXZpZHVlbGxlbiBDaGFydC1FaW5zdGVsbHVuZ2VuDQogICAgDQogICAgLy8gRGllIGhpZXIgZGFyZ2VzdGVsbHRlbiBGbHV4LVF1ZXJ5cyBzaW5kIGF1cyBlaW5lciBJbmZsdXhEQiAyLnggbWl0IGRlbiBBZGFwdGVyZWluc3RlbGx1bmdlbiAnVGFncyBhbnN0ZWxsZSBGZWxkZXIgZsO8ciBNZXRhZGF0ZW4nIChJbmZsdXgtQWRhcHRlciAtPiBFeHBlcnRlbmVpbnN0ZWxsdW5nZW4pDQogICAgLy8gQml0dGUgdW5iZWRpbmd0IGRpZSBJbmZvcyBkYXp1IGxlc2VuLCBiZXZvciBkaWUgRWlnZW5zY2hhZnQgdW1nZXN0ZWxsdCB3aXJkOiBodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuaW5mbHV4ZGIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI1N0b3JlLW1ldGFkYXRhLWluZm9ybWF0aW9uLWFzLXRhZ3MtaW5zdGVhZC1vZi1maWVsZHMNCiANCiAgICAvLyBEaWUgQWJmcmFnZW4ga8O2bm5lbiBzZWhyIGd1dCBtaXQgZGVtIEluZmx1eERCLU9TUyAoR1VJKSBlcnN0ZWxsdCB3ZXJkZW4uIFdlbm4gZGllIGRvcnQgYW5nZXplaWd0ZW4gRGF0ZW4gaW0gJ1ZpZXcgUmF3IERhdGEnLU1vZHVzIGhpbnNpY2h0bGljaCBfdmFsdWUgdW5kIF90aW1lIGRlbSBHZXfDvG5zY2h0ZW4gZW50c3ByZWNoZW4sDQogICAgLy8gZWluZmFjaCBkaWUgUXVlcnkgaGllcmhlciBrb3BpZXJlbiB1bmQgbm9jaCBoaW50ZXIgamVkZSBaZWlsZSBlaW4gJ1wnIGbDvHIgZGVuIFplaWxlbnVtYnJ1Y2ggaW0gU3RyaW5nIHNldHplbi4NCiANCiAgICBsZXQgZGF0ZW5wdW5rdGUgPSBbDQogICAgICAgIHsNCiAgICAgICAgICAgIGZsdXhRdWVyeToNCgkJCQknIFwNCgkJCQlpbXBvcnQgInRpbWV6b25lIiBcDQoJCQkJb3B0aW9uIGxvY2F0aW9uID0gdGltZXpvbmUubG9jYXRpb24obmFtZTogIkV1cm9wZS9CZXJsaW4iKSBcDQoJCQkJXA0KCQkJCWZyb20oYnVja2V0OiAiaW9icm9rZXIiKSBcDQoJCQkJfD4gcmFuZ2Uoc3RhcnQ6ICcgKyBzdGFydCArICcsIHN0b3A6ICcgKyBzdG9wICsgJykgXA0KCQkJCXw+IGZpbHRlcihmbjogKHIpID0+IHJbIl9tZWFzdXJlbWVudCJdID09ICJXUC1IWl9FU1RfRW5lcmdpZSIpIFwNCgkJCQl8PiBmaWx0ZXIoZm46IChyKSA9PiByWyJfZmllbGQiXSA9PSAidmFsdWUiKSBcDQoJCQkJfD4gZGlmZmVyZW5jZShub25OZWdhdGl2ZTogZmFsc2UsIGNvbHVtbnM6IFsiX3ZhbHVlIl0pIFwNCgkJCQl8PiBhZ2dyZWdhdGVXaW5kb3coZXZlcnk6ICcgKyBldmVyeSArICcsIGZuOiBzdW0sIHRpbWVTcmM6ICJfc3RhcnQiKSBcDQoJCQkJJw0KICAgICAgICAgICAgICAgICwgICAgICAgDQogICAgICAgICAgICBncmFwaFNldHRpbmdzOiB7DQogICAgICAgICAgICAgICAgdHlwZTogJ2JhcicsDQogICAgICAgICAgICAgICAgYmFySXNTdGFja2VkOiB0cnVlLA0KICAgICAgICAgICAgICAgIGJhclN0YWNrSWQ6IDEsDQogICAgICAgICAgICAgICAgY29sb3I6ICcjRkY0ODAwJywNCiAgICAgICAgICAgICAgICBiYXJCb3JkZXJDb2xvcjogJyMwMDAwMDAnLA0KICAgICAgICAgICAgICAgIGJhckJvcmRlcldpZHRoOiA1LA0KICAgICAgICAgICAgICAgIGxlZ2VuZFRleHQ6ICdIWiAnLA0KICAgICAgICAgICAgICAgIHRvb2x0aXBfdGV4dDogJycsDQogICAgICAgICAgICAgICAgZGF0YWxhYmVsX3Nob3c6IGZhbHNlLA0KICAgICAgICAgICAgICAgIC8vIGRhdGFsYWJlbF9hbGlnbjogJ2JvdHRvbScsDQogICAgICAgICAgICAgICAgLy8gZGF0YWxhYmVsX21pbkRpZ2l0czogMSwNCiAgICAgICAgICAgICAgICAvLyBkYXRhbGFiZWxfbWF4RGlnaXRzOiAxLA0KICAgICAgICAgICAgICAgIC8vIGRhdGFsYWJlbF9hcHBlbmQ6ICcnLA0KICAgICAgICAgICAgICAgIC8vIGRhdGFsYWJlbF9jb2xvcjogJyM0NDczOWUnLA0KICAgICAgICAgICAgICAgIC8vIGRpc3BsYXlPcmRlcjogMQ0KICAgICAgICAgICAgfSANCiAgICAgICAgfSwgLy8gPD0gWndpc2NoZW4gbWVocmVyZW4gRGF0ZW5wdW5rdGVuIGhpZXIgZGFzIEtvbW1hIG5pY2h0IHZlcmdlc3NlbiENCiAgICAgICAgew0KICAgICAgICAgICAgZmx1eFF1ZXJ5OiANCgkJCQknIFwNCgkJCQlpbXBvcnQgInRpbWV6b25lIiBcDQoJCQkJb3B0aW9uIGxvY2F0aW9uID0gdGltZXpvbmUubG9jYXRpb24obmFtZTogIkV1cm9wZS9CZXJsaW4iKSBcDQoJCQkJXA0KCQkJCWZyb20oYnVja2V0OiAiaW9icm9rZXIiKSBcDQoJCQkJfD4gcmFuZ2Uoc3RhcnQ6ICcgKyBzdGFydCArICcsIHN0b3A6ICcgKyBzdG9wICsgJykgXA0KCQkJCXw+IGZpbHRlcihmbjogKHIpID0+IHJbIl9tZWFzdXJlbWVudCJdID09ICJXUC1XV19FU1RfRW5lcmdpZSIpIFwNCgkJCQl8PiBmaWx0ZXIoZm46IChyKSA9PiByWyJfZmllbGQiXSA9PSAidmFsdWUiKSBcDQoJCQkJfD4gZGlmZmVyZW5jZShub25OZWdhdGl2ZTogZmFsc2UsIGNvbHVtbnM6IFsiX3ZhbHVlIl0pIFwNCgkJCQl8PiBhZ2dyZWdhdGVXaW5kb3coZXZlcnk6ICcgKyBldmVyeSArICcsIGZuOiBzdW0sIHRpbWVTcmM6ICJfc3RhcnQiKSBcDQoJCQkJJw0KICAgICAgICAgICAgICAgICwgICAgICAgDQogICAgICAgICAgICBncmFwaFNldHRpbmdzOiB7DQogICAgICAgICAgICAgICAgdHlwZTogJ2JhcicsDQogICAgICAgICAgICAgICAgYmFySXNTdGFja2VkOiB0cnVlLA0KICAgICAgICAgICAgICAgIGJhclN0YWNrSWQ6IDEsDQogICAgICAgICAgICAgICAgY29sb3I6ICcjMjIwMEZGJywNCiAgICAgICAgICAgICAgICBiYXJCb3JkZXJDb2xvcjogJyMwMDAwMDAnLA0KICAgICAgICAgICAgICAgIGJhckJvcmRlcldpZHRoOiA1LA0KICAgICAgICAgICAgICAgIGxlZ2VuZFRleHQ6ICdXVyAnLA0KICAgICAgICAgICAgICAgIHRvb2x0aXBfdGV4dDogJycsDQogICAgICAgICAgICAgICAgZGF0YWxhYmVsX3Nob3c6IGZhbHNlLA0KICAgICAgICAgICAgICAgIC8vIGRhdGFsYWJlbF9yb3RhdGlvbjogOTAsDQogICAgICAgICAgICAgICAgLy8gZGF0YWxhYmVsX21pbkRpZ2l0czogMSwNCiAgICAgICAgICAgICAgICAvLyBkYXRhbGFiZWxfbWF4RGlnaXRzOiAxLA0KICAgICAgICAgICAgICAgIC8vIGRhdGFsYWJsZV9jb2xvcjogJyM0NDczOWUnLA0KICAgICAgICAgICAgICAgIC8vIGRpc3BsYXlPcmRlcjogMQ0KICAgICAgICAgICAgfSANCiAgICAgICAgfSwgLy8gPD0gWndpc2NoZW4gbWVocmVyZW4gRGF0ZW5wdW5rdGVuIGhpZXIgZGFzIEtvbW1hIG5pY2h0IHZlcmdlc3NlbiENCiAgICAgICAgew0KICAgICAgICAgICAgZmx1eFF1ZXJ5OiANCgkJCQknIFwNCgkJCQlpbXBvcnQgInRpbWV6b25lIiBcDQoJCQkJb3B0aW9uIGxvY2F0aW9uID0gdGltZXpvbmUubG9jYXRpb24obmFtZTogIkV1cm9wZS9CZXJsaW4iKSBcDQoJCQkJXA0KCQkJCWZyb20oYnVja2V0OiAiaW9icm9rZXIiKSBcDQoJCQkJfD4gcmFuZ2Uoc3RhcnQ6ICcgKyBzdGFydCArICcsIHN0b3A6ICcgKyBzdG9wICsgJykgXA0KCQkJCXw+IGZpbHRlcihmbjogKHIpID0+IHJbIl9tZWFzdXJlbWVudCJdID09ICJXUC1XV19FU1RfRW5lcmdpZSIgb3IgclsiX21lYXN1cmVtZW50Il0gPT0gIldQLUhaX0VTVF9FbmVyZ2llIikgXA0KCQkJCXw+IGZpbHRlcihmbjogKHIpID0+IHJbIl9maWVsZCJdID09ICJ2YWx1ZSIpIFwNCgkJCQl8PiBkaWZmZXJlbmNlKG5vbk5lZ2F0aXZlOiBmYWxzZSwgY29sdW1uczogWyJfdmFsdWUiXSkgXA0KCQkJCXw+IG1hcChmbjogKHIpID0+ICh7IFwNCgkJCQkJciB3aXRoIFwNCgkJCQkJX21lYXN1cmVtZW50OiAiVG90YWwiLCBcDQoJCQkJCV92YWx1ZTogci5fdmFsdWUgXA0KCQkJCX0pKSBcDQoJCQkJfD4gYWdncmVnYXRlV2luZG93KGV2ZXJ5OiAnICsgZXZlcnkgKyAnLCBmbjogc3VtLCB0aW1lU3JjOiAiX3N0YXJ0IikgXA0KCQkJCScNCiAgICAgICAgICAgICAgICAsICAgICAgIA0KICAgICAgICAgICAgZ3JhcGhTZXR0aW5nczogew0KICAgICAgICAgICAgICAgIHR5cGU6ICdsaW5lJywNCiAgICAgICAgICAgICAgICBiYXJJc1N0YWNrZWQ6IHRydWUsDQogICAgICAgICAgICAgICAgYmFyU3RhY2tJZDogMSwNCiAgICAgICAgICAgICAgICBjb2xvcjogJyMwMEZGMjEnLA0KICAgICAgICAgICAgICAgIGxlZ2VuZFRleHQ6ICfOoyAnLA0KICAgICAgICAgICAgICAgIHRvb2x0aXBfdGV4dDogJycsDQogICAgICAgICAgICAgICAgZGF0YWxhYmVsX3Nob3c6IGZhbHNlLA0KICAgICAgICAgICAgICAgIC8vIGRhdGFsYWJlbF9yb3RhdGlvbjogOTAsDQogICAgICAgICAgICAgICAgLy8gZGF0YWxhYmVsX21pbkRpZ2l0czogMSwNCiAgICAgICAgICAgICAgICAvLyBkYXRhbGFiZWxfbWF4RGlnaXRzOiAxLA0KICAgICAgICAgICAgICAgIC8vIGRhdGFsYWJsZV9jb2xvcjogJyM0NDczOWUnLA0KICAgICAgICAgICAgICAgIC8vIGRpc3BsYXlPcmRlcjogMQ0KICAgICAgICAgICAgfSANCiAgICAgICAgfSAvLyA8PSBCZWltIGxldHp0ZW4gb2RlciBlaW56aWdlbiBEYXRlbnB1bmt0IG5hdMO8cmxpY2gga2VpbiBLb21tYSENCiAgICBdDQogDQogDQogICAgLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMgUHJvZ3JhbW1hYmxhdWYgKEVyemV1Z2VuIGRlcyBKU09OKSAjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIA0KICAgIHJlZnJlc2hEYXRhKCk7DQogDQogICAgLy9IYXVwdGZ1bmt0aW9uDQogICAgZnVuY3Rpb24gcmVmcmVzaERhdGEoKSB7DQogICAgdHJ5IHsNCiAgICAgICAgbGV0IGdyYXBocyA9IFtdOw0KIA0KICAgICAgICAvLyBJbiBkaWVzZXIgU2NobGVpZmUgd2VyZGVuIGFsbGUgb2JlbiBkZWZpbmllcnRlbiBEYXRlbnB1bmt0ZSBkdXJjaGxhdWZlbiB1bmQgZGllIGVudHN0ZWhlbmRlbiBKU09OLUJhdXN0ZWluZSBkZXIgVmFyaWFibGUgJ2dyYXBocycgYW5nZWhhbmdlbg0KICAgICAgICBmb3IgKGNvbnN0IGRhdGVucHVua3Qgb2YgZGF0ZW5wdW5rdGUpIHsNCiANCiAgICAgICAgICAgIGxldCBoaXN0b3J5RGF0YSA9IGdldEhpc3RvcnlHcmFwaERhdGEoaGlzdG9yeUluc3RhbmNlLCBkYXRlbnB1bmt0LmZsdXhRdWVyeSwgZGF0ZW5wdW5rdC5ncmFwaFNldHRpbmdzKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgaWYgKGhpc3RvcnlEYXRhKSB7DQogICAgICAgICAgICAgICAgZ3JhcGhzLnB1c2goaGlzdG9yeURhdGEpOw0KICAgICAgICAgICAgfQ0KIA0KICAgICAgICAgICAgLy8gRGFzIFJlc3VsdCB2b24gJ2dyYXBocycgaW4gZGVuIFppZWxkYXRlbnB1bmt0IHNjaHJlaWJlbiANCiAgICAgICAgICAgIFByb21pc2UuYWxsKGdyYXBocykudGhlbigocmVzdWx0KSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmxvZygiW3JlZnJlc2hEYXRhXTogRmluYWwgSlNPTiAiICsgSlNPTi5zdHJpbmdpZnkoeyBncmFwaHM6IHJlc3VsdCB9KSk7DQogICAgICAgICAgICAgICAgc2V0U3RhdGUodGFyZ2V0RFAsIEpTT04uc3RyaW5naWZ5KHsgZ3JhcGhzOiByZXN1bHQgfSksIHRydWUpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgY29uc29sZS5lcnJvcihgW3JlZnJlc2hEYXRhXSBlcnJvcjogJHtlcnIubWVzc2FnZX0sIHN0YWNrOiAke2Vyci5zdGFja31gKTsNCiAgICB9DQogICAgfQ0KIA0KICAgIC8vIFVudGVyZnVua3Rpb24genVtIEF1c2xlc2VuIGRlciBEYXRlbiBhdXMgSW5mbHV4REINCiAgICBmdW5jdGlvbiBnZXRIaXN0b3J5R3JhcGhEYXRhKGhpc3RvcnlJbnN0YW5jZSwgZmx1eFF1ZXJ5LCBncmFwaFNldHRpbmdzKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBsZXQgZ3JhcGggPSBPYmplY3QuYXNzaWduKHsgLi4uZ3JhcGhTZXR0aW5ncyB9LCBnbG9iYWxHcmFwaFNldHRpbmdzKTsNCiAgICAgICAgICAgIGxldCBzdW0gPSAwOyAvLyBOZXVlIFZhcmlhYmxlIGbDvHIgZGllIFN1bW1lIGRlciBXZXJ0ZQ0KDQogICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gew0KICAgICAgICAgICAgICAgIHNlbmRUbyhoaXN0b3J5SW5zdGFuY2UsICdxdWVyeScsIGZsdXhRdWVyeSwgZnVuY3Rpb24gKHF1ZXJ5KSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5sb2coJ1tnZXRIaXN0b3J5R3JhcGhEYXRhXTogUmF3IHJlc3VsdCBmcm9tIGZsdXhRdWVyeSAocXVlcnkucmVzdWx0KSAnICsgSlNPTi5zdHJpbmdpZnkocXVlcnkucmVzdWx0KSk7DQoNCiAgICAgICAgICAgICAgICAgICAgZ3JhcGguZGF0YSA9IHF1ZXJ5LnJlc3VsdFswXS5tYXAoZWxtID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKChlbG0uX3ZhbHVlICE9PSBudWxsICYmIGVsbS5fdmFsdWUgIT09IHVuZGVmaW5lZCkgPyBlbG0uX3ZhbHVlIDogbnVsbCkgLyAxMDAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3VtICs9IHZhbHVlOyAvLyBTdW1taWVyZW4gZGVyIFdlcnRlDQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQ6IChlbG0udHMgIT09IG51bGwgJiYgZWxtLnRzICE9PSB1bmRlZmluZWQpID8gZWxtLnRzIDogbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiB2YWx1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coYFN1bSBvZiAiJHtmbHV4UXVlcnkubWVhc3VyZW1lbnR9IjogJHtzdW19YCk7IC8vIEF1c2dhYmUgZGVyIFN1bW1lbnZhcmlhYmxlIGluIGRlciBLb25zb2xlDQoNCiAgICAgICAgICAgICAgICAvLyBSdW5kZSBkZW4gV2VydCBpbiBkZXIgVmFyaWFibGUgc3VtIGF1ZiAzIFN0ZWxsZW4gbmFjaCBkZW0gS29tbWENCiAgICAgICAgICAgICAgICBjb25zdCByb3VuZGVkU3VtID0gTWF0aC5yb3VuZChzdW0gKiAxMDAwKSAvIDEwMDA7DQogICAgICAgICAgICAgICAgLy8gSGluenVmw7xnZW4gZGVyIGdlcnVuZGV0ZW4gU3VtbWVudmFyaWFibGUgenVyIExlZ2VuZGUNCiAgICAgICAgICAgICAgICBncmFwaC5sZWdlbmRUZXh0ICs9IHJvdW5kZWRTdW0udG9GaXhlZCgyKSArICcga1doJzsNCg0KICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHsgLi4uZ3JhcGggfSk7DQogICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5sb2coIltnZXRIaXN0b3J5R3JhcGhEYXRhXTogUmVzdWx0IGFmdGVyIG1hcCB0OiBhbmQgeTogKHF1ZXJ5LmRhdGEpICIgKyBKU09OLnN0cmluZ2lmeShncmFwaC5kYXRhKSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtnZXRIaXN0b3J5R3JhcGhEYXRhXTogZXJyb3I6ICR7ZXgubWVzc2FnZX0sIHN0YWNrOiAke2V4LnN0YWNrfWApOw0KICAgICAgICB9DQogICAgfTsNCiANCn07IC8vIGVuZCBbcmVmcmVzaF0NCg==
Beschreibe diese Funktion …
update_graph
Describe this function...
1day
86400000
timerange
val
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Timerange
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Time_shift
FALSE
timeshift
EQ
timerange
1
1 = 1 Tag
2 = 1 Woche
3 = 1 Monat
4 = 1 Jahr
5 = 12 Monate
Ansicht 1 Tag
start_of_day
end_of_day
timerange_start
custom
JJJJ-MM-TT
MINUS
1
start_of_day
1
1day
T22:00:00Z
timerange_stop
custom
JJJJ-MM-TT
end_of_day
T22:00:00Z
aggregate_window
1h
date&time_title
custom
TT.MM.JJJJ
start_of_day
EQ
timerange
2
1 = 1 Tag
2 = 1 Woche
3 = 1 Monat
4 = 1 Jahr
5 = 12 Monate
Ansicht 1 Woche
start_of_week
end_of_week
timerange_start
custom
JJJJ-MM-TT
MINUS
1
start_of_week
1
1day
T22:00:00Z
timerange_stop
custom
JJJJ-MM-TT
end_of_week
T22:00:00Z
aggregate_window
1d
date&time_title
KW
EQ
timerange
3
1 = 1 Tag
2 = 1 Woche
3 = 1 Monat
4 = 1 Jahr
5 = 12 Monate
Ansicht 1 Monat
start_of_mounth
end_of_mounth
timerange_start
custom
JJJJ-MM-TT
MINUS
1
start_of_mounth
1
1day
T22:00:00Z
timerange_stop
custom
JJJJ-MM-TT
end_of_mounth
T22:00:00Z
aggregate_window
1d
date&time_title
Mts
de
start_of_mounth
custom
JJJJ
start_of_mounth
EQ
timerange
4
1 = 1 Tag
2 = 1 Woche
3 = 1 Monat
4 = 1 Jahr
5 = 12 Monate
Ansicht 1 Jahr
start_of_year
end_of_year
timerange_start
custom
JJJJ-MM-TT
start_of_year
T22:00:00Z
timerange_stop
custom
JJJJ-MM-TT
end_of_year
T22:00:00Z
aggregate_window
1mo
date&time_title
custom
JJJJ
start_of_year
EQ
timerange
5
1 = 1 Tag
2 = 1 Woche
3 = 1 Monat
4 = 1 Jahr
5 = 12 Monate
Ansicht letzte 12 Monate
end_of_mounth
timeshift
-11
start_of_mounth_-12mo
timerange_start
custom
JJJJ-MM-TT
start_of_mounth_-12mo
T22:00:00Z
timerange_stop
custom
JJJJ-MM-TT
end_of_mounth
T22:00:00Z
aggregate_window
1mo
date&time_title
Mts
de
start_of_mounth_-12mo
custom
JJJJ
start_of_mounth_-12mo
-
Mts
de
end_of_mounth
custom
JJJJ
end_of_mounth
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Timerange_start
FALSE
timerange_start
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Timerange_stop
FALSE
timerange_stop
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_aggregate_Window
FALSE
aggregate_window
0_userdata.0.Diagrammsteuerung.Energie.WP_POW_SET_Date&Time_Title
FALSE
date&time_title
timeshift
0