1
0
Files
homelab-public-context/runtime/latest.json
T

39 lines
30 KiB
JSON

{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "SUPPORT-260920-PVEPRO-VISUAL-STYLE-766-RENDER-RCA-READONLY-767R1",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "read-only",
"component": "pvepro-visual-style-766-render-rca-readonly",
"started_at_utc": "2026-09-20T14:45:07Z",
"finished_at_utc": "2026-09-20T14:45:12Z",
"reference_register_checked": true,
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
"error_register_checked": true,
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
"command_sha256": "a9a1338cd5621b76108b4400fa705529149572bec716d1a42c5f78d3e508f4fb",
"duplicate_failed_command_blocked": false,
"block_reason": null,
"execution_started": true,
"change_declared": false,
"result_contract_valid": true,
"result_contract_status": null,
"result_contract_error": null,
"command_rc": 0,
"changes_made": false,
"rollback_started": false,
"rollback_restored": null,
"mutation_outcome": "NO_MUTATION",
"sanitized": true,
"secrets_included": false,
"private_addresses_included": false,
"raw_evidence_retained_locally": true,
"raw_evidence_sha256": "2f9d3c9b46eb0c8780cc0a118628414cf48f304f0642386963e403495f97eca8",
"sanitized_output_sha256": "2f9d3c9b46eb0c8780cc0a118628414cf48f304f0642386963e403495f97eca8",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
"output": "COMMAND_ID=SUPPORT-260920-PVEPRO-VISUAL-STYLE-766-RENDER-RCA-READONLY-767R1\nMODE=read-only\nCOMPONENT=pvepro-visual-style-766-render-rca-readonly\nWINDOW_MODE=VISIBLE_SYNCHRONOUS_WAIT\n766_FAILURE_SHA_MATCH_STYLE_RENDER=True\nISSUED_766_VERIFIER_SHA256=fe38fc81d08cb80fc66f1934ae84757ec8f09f790c1cd912f7e626ec9afbcd29\nVERIFIER_REQUIRES_EXACT_MARKER_SPACE=True\nVERIFIER_REQUIRES_CHILD_STYLE_REF=True\nVERIFIER_REQUIRES_BRAND_REF=True\nVERIFIER_REQUIRES_RUSSIAN_TITLES=True\nVERIFIER_SOURCE={\"bytes\":1939,\"content\":\"import hashlib,html,json,re,subprocess,sys,urllib.parse\\nsid=int(sys.argv[1])\\ndef get(path,ua=\\\"Workers2-Style757\\\"):\\n marker=b\\\"\\\\n__W2S757__\\\"\\n p=subprocess.run([\\\"/usr/bin/curl\\\",\\\"-q\\\",\\\"-sS\\\",\\\"--connect-timeout\\\",\\\"5\\\",\\\"--max-time\\\",\\\"30\\\",\\n \\\"-A\\\",ua,\\\"-H\\\",\\\"Host: pvepro.ru\\\",\\\"-o\\\",\\\"-\\\",\\\"-w\\\",\\\"\\\\n__W2S757__%{http_code}|%{size_download}\\\",\\n \\\"http://127.0.0.1/\\\"+path.lstrip(\\\"/\\\")],stdout=subprocess.PIPE,stderr=subprocess.PIPE,timeout=40)\\n pos=p.stdout.rfind(marker)\\n if pos<0:return None,None,p.returncode\\n tail=p.stdout[pos+len(marker):].strip().split(b\\\"|\\\",1)\\n return p.stdout[:pos],int(tail[0]) if len(tail)==2 else None,p.returncode\\ndef check(ua):\\n body,code,rc=get(\\\"index.php\\\",ua)\\n text=body.decode(\\\"utf-8\\\",\\\"strict\\\") if body else \\\"\\\"\\n refs=[html.unescape(x) for x in re.findall(r'<link\\\\b[^>]*href=[\\\"\\\\']([^\\\"\\\\']*css\\\\.php[^\\\"\\\\']*)[\\\"\\\\']',text,re.I)]\\n css=[]\\n css_codes=[]\\n for u in refs[:8]:\\n b,c,r=get(u,ua);css_codes.append([c,r,len(b or b\\\"\\\")])\\n if b: css.append(b)\\n combo=b\\\"\\\\n\\\".join(css)\\n style_ref=any(re.search(r'(?:[?&])s='+str(sid)+r'(?:&|$)',u) for u in refs)\\n return {\\n \\\"ok\\\":code==200 and rc==0 and len(body or b\\\"\\\")>1000 and \\\"PVEPro\\\" in text and\\n \\\"\\u041e\\u0441\\u043d\\u043e\\u0432\\u043d\\u0430\\u044f \\u043a\\u0430\\u0442\\u0435\\u0433\\u043e\\u0440\\u0438\\u044f\\\" in text and \\\"\\u041e\\u0441\\u043d\\u043e\\u0432\\u043d\\u043e\\u0439 \\u0444\\u043e\\u0440\\u0443\\u043c\\\" in text and\\n \\\"brand753r4\\\" in text and style_ref and b\\\"--pvepro-style757: 1\\\" in combo,\\n \\\"code\\\":code,\\\"bytes\\\":len(body or b\\\"\\\"),\\\"sha256\\\":hashlib.sha256(body or b\\\"\\\").hexdigest(),\\n \\\"css_ref_count\\\":len(refs),\\\"style_ref\\\":style_ref,\\\"css_bytes\\\":len(combo),\\n \\\"css_marker\\\":b\\\"--pvepro-style757: 1\\\" in combo,\\\"css_codes\\\":css_codes,\\n \\\"mobile_ua\\\":\\\"Mobile\\\" in ua\\n }\\nrows=[check(\\\"Workers2-Style757-Desktop\\\"),check(\\\"Mozilla/5.0 Mobile Workers2-Style757\\\")]\\nok=all(x[\\\"ok\\\"] for x in rows)\\nprint(json.dumps({\\\"ok\\\":ok,\\\"style_id\\\":sid,\\\"rows\\\":rows},ensure_ascii=True,sort_keys=True,separators=(\\\",\\\",\\\":\\\")))\\nraise SystemExit(0 if ok else 23)\\n\",\"sha256\":\"fe38fc81d08cb80fc66f1934ae84757ec8f09f790c1cd912f7e626ec9afbcd29\"}\nCURRENT_HOST_STATE={\"conf_sha256\":\"bb64db5a9f6348480e42d876c995789b7d277605f16034e7675ae0375ac5b6eb\",\"config_sha256\":\"19cb1ed5b0966da28ae390b6f65dd90f2db5e599a6ad24355fc33fdd8d6a76a0\",\"production_status\":\"running\",\"snapshot_766_present\":true,\"staging_snapshots\":[\"w2-pre-style-766r1\"],\"staging_status\":\"stopped\"}\nRECENT_TASK_COUNT=24\nRECENT_TASK_01=UPID:pve01:0036EBDD:0BDA29A6:6AAFE52A:qmstop:101:root@pam: 6AAFE52B OK\nRECENT_TASK_02=UPID:pve01:0036EC00:0BDA29E2:6AAFE52B:qmrollback:101:root@pam: 6AAFE52B OK\nRECENT_TASK_03=UPID:pve01:0036EC14:0BDA2A28:6AAFE52C:qmstart:101:root@pam: 6AAFE52C OK\nRECENT_TASK_04=UPID:pve01:0036F039:0BDA5CD1:6AAFE5AD:qmstop:101:root@pam: 6AAFE5AE OK\nRECENT_TASK_05=UPID:pve01:00377575:0BDB2C1D:6AAFE7C0:qmrollback:101:root@pam: 6AAFE7C0 OK\nRECENT_TASK_06=UPID:pve01:0037759A:0BDB2C66:6AAFE7C1:qmstart:101:root@pam: 6AAFE7C1 OK\nRECENT_TASK_07=UPID:pve01:00377EA0:0BDB5F55:6AAFE843:qmstop:101:root@pam: 6AAFE843 OK\nRECENT_TASK_08=UPID:pve01:00378012:0BDB602C:6AAFE845:qmdelsnapshot:101:root@pam: 6AAFE845 OK\nRECENT_TASK_09=UPID:pve01:0037B979:0BDBE056:6AAFE98D:qmsnapshot:101:root@pam: 6AAFE98E OK\nRECENT_TASK_10=UPID:pve01:0037B987:0BDBE08E:6AAFE98E:qmstart:101:root@pam: 6AAFE98F OK\nRECENT_TASK_11=UPID:pve01:0037E929:0BDC175C:6AAFEA1A:qmstop:101:root@pam: 6AAFEA1A OK\nRECENT_TASK_12=UPID:pve01:0037E93C:0BDC1795:6AAFEA1B:qmrollback:101:root@pam: 6AAFEA1B OK\nRECENT_TASK_13=UPID:pve01:0037E950:0BDC17DA:6AAFEA1C:qmstart:101:root@pam: 6AAFEA1C OK\nRECENT_TASK_14=UPID:pve01:0037EF65:0BDC4AB0:6AAFEA9E:qmstop:101:root@pam: 6AAFEA9E OK\nRECENT_TASK_15=UPID:pve01:00387B3A:0BDD6D58:6AAFED86:qmrollback:101:root@pam: 6AAFED86 OK\nRECENT_TASK_16=UPID:pve01:00387B51:0BDD6D9E:6AAFED86:qmstart:101:root@pam: 6AAFED87 OK\nRECENT_TASK_17=UPID:pve01:0038AB59:0BDDA07C:6AAFEE09:qmstop:101:root@pam: 6AAFEE09 OK\nRECENT_TASK_18=UPID:pve01:0038AB73:0BDDA14F:6AAFEE0B:qmdelsnapshot:101:root@pam: 6AAFEE0B OK\nRECENT_TASK_19=UPID:pve01:0038FC7E:0BDE06B4:6AAFEF0E:qmsnapshot:101:root@pam: 6AAFEF0E OK\nRECENT_TASK_20=UPID:pve01:0038FC8B:0BDE06EB:6AAFEF0F:qmstart:101:root@pam: 6AAFEF10 OK\nRECENT_TASK_21=UPID:pve01:00390BAE:0BDE5F10:6AAFEFF1:qmstop:101:root@pam: 6AAFEFF1 OK\nRECENT_TASK_22=UPID:pve01:00390BC0:0BDE5F4C:6AAFEFF1:qmrollback:101:root@pam: 6AAFEFF1 OK\nRECENT_TASK_23=UPID:pve01:00390BD4:0BDE5F91:6AAFEFF2:qmstart:101:root@pam: 6AAFEFF3 OK\nRECENT_TASK_24=UPID:pve01:00393C8B:0BDE924D:6AAFF074:qmstop:101:root@pam: 6AAFF074 OK\nPRODUCTION_APP_STATE=W2STYLE767PROD={\"defaultStyleId\":1,\"boardActive\":true,\"styleCount\":1}\nPRODUCTION_CSS_HREF_SHAPE={\"has_s1\":true,\"ref_count\":2,\"refs\":[\"/css.php?css=public%3Anormalize.css%2Cpublic%3Afa.css%2Cpublic%3Avariations.less%2Cpublic%3Acore.less%2Cpublic%3Aapp.less&amp;s=1&amp;l=2&amp;d=1789884768&amp;k=0132df9e8895f22d33adf6486e0d8f92e71895c4\",\"/css.php?css=public%3Anode_list.less%2Cpublic%3Ashare_controls.less%2Cpublic%3Aextra.less&amp;s=1&amp;l=2&amp;d=1789884768&amp;k=43d19352348ea7e33297a5400d94a1ac53993513\"]}\nCSS_SOURCE_HIT_01={\"bytes\":94945,\"file\":\"/var/www/pvepro/src/XF/App.php\",\"selected\":[{\"line\":480,\"text\":\"\\t\\t\\t\\t$response->compressIfAble(false);\"},{\"line\":2433,\"text\":\"\\t\\t\\t'versionVisible' => preg_replace('/^(\\\\d+)\\\\.(\\\\d+)\\\\..+$/', '$1.$2', \\\\XF::$version),\"}],\"sha256\":\"fad88af3a5e175661725e9261eb8ef5642d59594b822d25e4e7d733d306f8519\"}\nCSS_SOURCE_HIT_02={\"bytes\":7593,\"file\":\"/var/www/pvepro/src/XF/Api/Controller/AuthController.php\",\"selected\":[{\"line\":71,\"text\":\"\\t * This can be used to help with seamless SSO with XF, assuming the session or remember cookies are\"}],\"sha256\":\"0b4dbaf67ceaccc118101dff31c937419b276195b466ede926129c5a96e1fc32\"}\nCSS_SOURCE_HIT_03={\"bytes\":6859,\"file\":\"/var/www/pvepro/src/XF/Api/Controller/UserController.php\",\"selected\":[{\"line\":243,\"text\":\"\\t\\t// this function should always be checked, regardless of bypass permission options\"}],\"sha256\":\"e6b845d5717321fa634862c5fdf1e1a12945f4c5c9960314a7d57d2088de8012\"}\nCSS_SOURCE_HIT_04={\"bytes\":3093,\"file\":\"/var/www/pvepro/src/XF/Api/Controller/SearchForumController.php\",\"selected\":[{\"line\":70,\"text\":\"\\t * @api-out Thread[] $threads Threads on this page. Note: this will always respect viewing user permissions regardless of whether the API is set to bypass permissions.\"}],\"sha256\":\"e80b74c0908a3944033794bf0b51f342d015c4fb186ed06d30e0d2d12720d00e\"}\nCSS_SOURCE_HIT_05={\"bytes\":6728,\"file\":\"/var/www/pvepro/src/XF/Import/ParallelRunner.php\",\"selected\":[{\"line\":179,\"text\":\"\\t\\t\\t$error = \\\"startAfter less than the step state startAfter value.\\\";\"},{\"line\":191,\"text\":\"\\t\\t\\t$error = \\\"End less than the step state end value.\\\";\"}],\"sha256\":\"820f063b923594649fc07d8c3b329e0435b446fe0948ead38a45bd0e94d33cb7\"}\nCSS_SOURCE_HIT_06={\"bytes\":18724,\"file\":\"/var/www/pvepro/src/XF/Import/PlatformUtil/Ips.php\",\"selected\":[{\"line\":66,\"text\":\"\\t\\t$baseConfig['db']['tablePrefix'] = preg_replace('/[^a-z0-9_]/i', '', $baseConfig['db']['tablePrefix']);\"},{\"line\":393,\"text\":\"\\t\\t$content = preg_replace('/<br( \\\\/)?>(\\\\r?\\\\n)?/si', \\\"\\\\n\\\", $content);\"},{\"line\":394,\"text\":\"\\t\\t$content = str_replace('&nbsp;', ' ', $content);\"},{\"line\":403,\"text\":\"\\t\\t$content = preg_replace('/<br( \\\\/)?>(\\\\r?\\\\n)?/si', \\\"\\\\n\\\", $content);\"},{\"line\":404,\"text\":\"\\t\\t$content = str_replace('&nbsp;', ' ', $content);\"},{\"line\":410,\"text\":\"\\t\\t$content = preg_replace(array_keys($replacements), $replacements, $content);\"},{\"line\":425,\"text\":\"\\t\\t\\t$content = preg_replace_callback(\"},{\"line\":456,\"text\":\"\\t\\t\\t$content = preg_replace_callback(\"},{\"line\":500,\"text\":\"\\t\\t\\t\\t\\t$newContent = preg_replace($pattern, $replacement, $content);\"},{\"line\":606,\"text\":\"\\t\\t$content = preg_replace_callback(\"},{\"line\":650,\"text\":\"\\t\\t\\t\\t// less common attachment links - attached image no link\"},{\"line\":667,\"text\":\"\\t\\t\\t\\t\\t\\t// protocol-less link, which won't work\"}],\"sha256\":\"000eab4dca3e3aff569cbf9412e099052833f4598265bcb8e01c694eda3704e9\"}\nCSS_SOURCE_HIT_07={\"bytes\":9475,\"file\":\"/var/www/pvepro/src/XF/Import/Data/User.php\",\"selected\":[{\"line\":260,\"text\":\"\\t\\t\\t// unless a language ID has been set, set the default (as XF doesn't use 0).\"}],\"sha256\":\"28abfe84654f7173611d16dc97df886faa6fd75d8c2b21eabb17b0025b48616f\"}\nCSS_SOURCE_HIT_08={\"bytes\":12763,\"file\":\"/var/www/pvepro/src/XF/Style.php\",\"selected\":[{\"line\":426,\"text\":\"\\t\\treturn $this->compileCssPropertyValue($value, $filters);\"},{\"line\":435,\"text\":\"\\tpublic function compileCssPropertyValue(array $css, array $filters = [])\"},{\"line\":579,\"text\":\"\\t\\t$return = \\\"\\\\t\\\" . str_replace(\\\"\\\\n\\\", \\\"\\\\n\\\\t\\\", $return);\"}],\"sha256\":\"2567bf9504b6a700cd91963118cdb94e4281f439cde41e4e583a7a40942883e9\"}\nCSS_SOURCE_HIT_09={\"bytes\":16173,\"file\":\"/var/www/pvepro/src/XF/DevelopmentOutput.php\",\"selected\":[{\"line\":27,\"text\":\"\\tprotected $validFileExtensions = ['txt', 'html', 'less', 'css', 'xhtml', 'json', 'xml', ''];\"},{\"line\":149,\"text\":\"\\t\\t\\t$addOnId = str_replace('/', \\\\XF::$DS, $addOnId);\"},{\"line\":647,\"text\":\"\\t\\t$contents = str_replace(\\\"\\\\r\\\", '', $contents);\"}],\"sha256\":\"4e0c88c24ae71837b5eda0d15c474256c89a69d8e081ff1fea26bc405c5b29bd\"}\nCSS_SOURCE_HIT_10={\"bytes\":3772,\"file\":\"/var/www/pvepro/src/XF/EmbedResolver/App.php\",\"selected\":[{\"line\":38,\"text\":\"\\t\\t\\t\\t$response->compressIfAble(false);\"}],\"sha256\":\"a78c1bf7dfe24c81e40114885c82945e51619eedbf09a31cf2d301b206f842de\"}\nCSS_SOURCE_HIT_11={\"bytes\":1851,\"file\":\"/var/www/pvepro/src/XF/CssRenderException.php\",\"selected\":[{\"line\":83,\"text\":\"\\tpublic static function createFromLessException(\\\\Less_Exception_Parser $e, $templateName, $contents)\"},{\"line\":87,\"text\":\"\\t\\t$message = preg_replace(\\\"/anonymous-file-\\\\d+\\\\.less/i\\\", $templateName, $message);\"}],\"sha256\":\"2087c9d66377a0949f017530324d442368076aae9ce2d282d2b5f3c5846ccc4e\"}\nCSS_SOURCE_HIT_12={\"bytes\":5714,\"file\":\"/var/www/pvepro/src/XF/Admin/Controller/AdminController.php\",\"selected\":[{\"line\":93,\"text\":\"\\t\\t\\t\\t\\t\\t$form->logError(\\\\XF::phrase('admin_add_passwordless_warning_no_email'));\"},{\"line\":158,\"text\":\"\\t\\t\\t$warnings[] = \\\\XF::phrase('admin_add_passwordless_warning');\"}],\"sha256\":\"b499cb931f564590ea62002bacb281d24f3088c3ddd8baf10b67b5fb1b116988\"}\nCSS_SOURCE_HIT_13={\"bytes\":12266,\"file\":\"/var/www/pvepro/src/XF/Admin/Controller/PhraseController.php\",\"selected\":[{\"line\":178,\"text\":\"\\t\\t// If edit/skip, we display existing phrase regardless\"}],\"sha256\":\"787bdf9de198612a6d81e6cb0bfc507b82f14276587d5457aae474f0c6366ded\"}\nCSS_SOURCE_HIT_14={\"bytes\":5046,\"file\":\"/var/www/pvepro/src/XF/Admin/Controller/AdminNavigationController.php\",\"selected\":[{\"line\":152,\"text\":\"\\t\\t// It's dangerous to use unless you go back as it removes custom order changes, so if used,\"}],\"sha256\":\"203230f905f8bf146446577f4e80962dc5814fdb9031116a20e3c7a9b7e92f63\"}\nCSS_SOURCE_HIT_15={\"bytes\":2235,\"file\":\"/var/www/pvepro/src/XF/Admin/Controller/AssetController.php\",\"selected\":[{\"line\":35,\"text\":\"\\t\\t\\t// again, shouldn't happen unless a request is manually modified\"}],\"sha256\":\"a4d228299ec8ef58ab2c6ec05186e1bf410b0cc301abd83481a6d0fb60ee3227\"}\nCSS_SOURCE_HIT_16={\"bytes\":8768,\"file\":\"/var/www/pvepro/src/XF/DesignerOutput/StyleProperty.php\",\"selected\":[{\"line\":38,\"text\":\"\\t\\t$this->queuePropertyLessCacheRebuild($property->Style);\"},{\"line\":204,\"text\":\"\\tprotected function queuePropertyLessCacheRebuild(\\\\XF\\\\Entity\\\\Style $style)\"},{\"line\":206,\"text\":\"\\t\\t\\\\XF::runOnce('stylePropLessCacheRebuild-' . $style->designer_mode, function () use ($style)\"},{\"line\":208,\"text\":\"\\t\\t\\t$this->rebuildPropertyLessCache($style);\"},{\"line\":212,\"text\":\"\\tpublic function rebuildPropertyLessCache(\\\\XF\\\\Entity\\\\Style $style)\"},{\"line\":214,\"text\":\"\\t\\t$fileName = 'style_properties.less';\"},{\"line\":215,\"text\":\"\\t\\t$finalOutput = $this->getLessCacheFileValue($style->designer_mode);\"},{\"line\":227,\"text\":\"\\tpublic function getLessCacheFileValue($designerMode)\"},{\"line\":247,\"text\":\"\\t\\t\\t\\t$output = $this->compileLessCacheCssProperty($property, $prefix, $cssValue);\"},{\"line\":255,\"text\":\"\\t\\t\\t\\t$output = $this->compileLessCacheValueProperty($property, $prefix);\"},{\"line\":285,\"text\":\"\\tprotected function compileLessCacheValueProperty(\\\\XF\\\\Entity\\\\StyleProperty $property, $prefix)\"},{\"line\":297,\"text\":\"\\tprotected function compileLessCacheCssProperty(\\\\XF\\\\Entity\\\\StyleProperty $property, $prefix, ?array &$valueOutput = null)\"},{\"line\":302,\"text\":\"\\t\\t$value = $propertyRebuilder->standardizeLessCacheValue($property->property_value, $property->css_components);\"},{\"line\":320,\"text\":\"\\t\\t$value = $style->compileCssPropertyValue($value);\"}],\"sha256\":\"39cc76c4267934d5635516e0c8d7927f3f06febfecad627df2c3c14b9a4666a9\"}\nCSS_SOURCE_HIT_17={\"bytes\":484,\"file\":\"/var/www/pvepro/src/XF/Option/ActivitySummaryEmail.php\",\"selected\":[{\"line\":13,\"text\":\"\\t\\t\\t// test emails will not send unless these have values so just\"}],\"sha256\":\"ef0df3141b63263cf409f40acf9978db66c002e4620ec3ce4bb336582cdcf35e\"}\nCSS_SOURCE_HIT_18={\"bytes\":9352,\"file\":\"/var/www/pvepro/src/XF/Html/Parser.php\",\"selected\":[{\"line\":206,\"text\":\"\\t\\t\\t\\t\\t\\t// match a \\\"/\\\" in an unquoted attr, unless it's the last value\"},{\"line\":245,\"text\":\"\\t\\t\\t$match[2] = trim(preg_replace('/!\\\\s*important$/i', '', trim($match[2])));\"}],\"sha256\":\"10577b5ff44502629c7665ce456297b464eae574fa18ac613201c8b13a5ebcfe\"}\nCSS_SOURCE_HIT_19={\"bytes\":6555,\"file\":\"/var/www/pvepro/src/XF/Html/Tag.php\",\"selected\":[{\"line\":136,\"text\":\"\\t * unless invalid nesting occurred.\"},{\"line\":329,\"text\":\"\\t * tags can optionally have child tags/output that aren't normally displayed unless there's\"}],\"sha256\":\"ff5b4dfc8ae53692c3e866322ebe068e7f5dfcfc7d73c35a59b6d20516e856f5\"}\nCSS_SOURCE_HIT_20={\"bytes\":34800,\"file\":\"/var/www/pvepro/src/XF/Html/Renderer/BbCode.php\",\"selected\":[{\"line\":123,\"text\":\"\\t\\t$html = preg_replace(\"},{\"line\":130,\"text\":\"\\t\\t$html = preg_replace(\"},{\"line\":136,\"text\":\"\\t\\t$html = preg_replace_callback(\"},{\"line\":142,\"text\":\"\\t\\t$html = preg_replace(\"},{\"line\":148,\"text\":\"\\t\\t$html = preg_replace_callback('/^<li\\\\s?(?:data-xf-list-type=\\\"(ul|ol)\\\")?>.*<\\\\/li>$/is', function (array $match)\"},{\"line\":155,\"text\":\"\\t\\t$html = preg_replace_callback('/<span[^>]*class=\\\"(fr-video[^\\\"]*)\\\"[^>]*>(<video.*)<\\\\/span>/U', function (array $match)\"},{\"line\":160,\"text\":\"\\t\\t\\t$video = str_replace('class=\\\"', 'class=\\\"' . $classes . ' ', $video);\"},{\"line\":166,\"text\":\"\\t\\t$html = preg_replace_callback('/<span[^>]*class=\\\"(fr-audio[^\\\"]*)\\\"[^>]*>(<audio.*)<\\\\/span>/U', function (array $match)\"},{\"line\":171,\"text\":\"\\t\\t\\t$video = str_replace('class=\\\"', 'class=\\\"' . $classes . ' ', $video);\"},{\"line\":184,\"text\":\"\\t\\t$content = preg_replace('#<(' . $tags . ')(\\\\s[^>]*)?>#i', '', $content);\"},{\"line\":185,\"text\":\"\\t\\t$content = preg_replace('#</(' . $tags . ')>#i', '', $content);\"},{\"line\":207,\"text\":\"\\t\\t$text = preg_replace('#\\\\[img\\\\]\\\\[url\\\\]([^\\\\[]+)\\\\[/url\\\\]\\\\[/img\\\\]#i', '[IMG]$1[/IMG]', $text);\"},{\"line\":211,\"text\":\"\\t\\t\\t$newText = preg_replace('#\\\\[/(b|i|u|s|left|center|right|justify)\\\\]([\\\\r\\\\n]*)\\\\[\\\\\\\\1\\\\]#i', '\\\\\\\\2', $text);\"},{\"line\":222,\"text\":\"\\t\\t\\t$newText = preg_replace('#(\\\\[(font|color|size)=[^\\\\]]*\\\\])((?:(?>[^\\\\[]+?)|\\\\[(?!\\\\\\\\2))*)\\\\[/\\\\\\\\2\\\\]([\\\\r\\\\n]*)\\\\\\\\1#siU', '\\\\\\\\1\\\\\\\\3\\\\\\\\4', $text);\"},{\"line\":234,\"text\":\"\\t\\t\\t$newText = preg_replace('#\\\\[/(b|i|u|s|left|center|right|justify)\\\\]([\\\\r\\\\n]*)\\\\[\\\\\\\\1\\\\]#i', '\\\\\\\\2', $text);\"},{\"line\":334,\"text\":\"\\t\\t\\t\\t\\t$outputText = strrev(preg_replace('/^( )+/', '', strrev($outputText)));\"},{\"line\":370,\"text\":\"\\t\\t\\t\\t$outputText = $this->renderCss($tag, $outputText);\"},{\"line\":478,\"text\":\"\\t\\t\\t$text = preg_replace('/[\\\\r\\\\n\\\\t ]+/', ' ', $text);\"},{\"line\":492,\"text\":\"\\tpublic function renderCss(Tag $tag, $stringOutput)\"},{\"line\":596,\"text\":\"\\t\\t$baseParts['path'] = str_replace('\\\\\\\\', '/', $baseParts['path']);\"},{\"line\":776,\"text\":\"\\t\\treturn $this->renderCss($tag, $output);\"},{\"line\":803,\"text\":\"\\t\\treturn $this->renderCss($tag, $output);\"},{\"line\":830,\"text\":\"\\t\\treturn $this->renderCss($tag, $output);\"},{\"line\":901,\"text\":\"\\t\\t\\treturn ' alt=\\\"' . str_replace('\\\"', '', $tag->attribute('alt')) . '\\\"';\"},{\"line\":953,\"text\":\"\\t\\treturn $this->renderCss($tag, $output);\"},{\"line\":1060,\"text\":\"\\t\\t\\t$tagOption = str_replace('\\\"', '', implode(', ', $parts));\"},{\"line\":1094,\"text\":\"\\t\\treturn $this->renderCss($tag, $output);\"},{\"line\":1111,\"text\":\"\\t\\treturn $this->renderCss($tag, $output);\"}],\"sha256\":\"d950aefa2e6bafc725dde85c5dd9ca55c87530b73ffa9e14407fdd893f89d319\"}\nCSS_SOURCE_HIT_21={\"bytes\":47807,\"file\":\"/var/www/pvepro/src/XF/Pub/Controller/ThreadController.php\",\"selected\":[{\"line\":703,\"text\":\"\\t * This only makes sense in the context of a date-ordered, filterless thread view.\"}],\"sha256\":\"625e3bdf423acee25cd0961765eacd43fca6d416d6dfea310d63c617687ece65\"}\nCSS_SOURCE_HIT_22={\"bytes\":1723,\"file\":\"/var/www/pvepro/src/XF/Pub/Controller/ServiceWorkerController.php\",\"selected\":[{\"line\":52,\"text\":\"\\t\\treturn ['public:variations.less', 'public:offline.less'];\"}],\"sha256\":\"5ab8a97a96c3b65a282684559a9252a3877af32faf6c73037c0975eadc11a57b\"}\nCSS_SOURCE_HIT_23={\"bytes\":15999,\"file\":\"/var/www/pvepro/src/XF/Pub/Controller/AbstractController.php\",\"selected\":[{\"line\":88,\"text\":\"\\t\\t\\t// log these details for page caching regardless of whether we want to update for this request\"}],\"sha256\":\"023efffff88cd1675173f30a8104d25fb220a5d8dc989d89c33d3ba09b0c0169\"}\nCSS_SOURCE_HIT_24={\"bytes\":19797,\"file\":\"/var/www/pvepro/src/XF/Pub/App.php\",\"selected\":[{\"line\":511,\"text\":\"\\t\\t\\t// don't save empty sessions as it would generally be pointless\"}],\"sha256\":\"e9f732650c24e92d7834cfcdfdbfb33feb03d8facde211e797dc5e6e00308c29\"}\nCSS_SOURCE_HIT_25={\"bytes\":3214,\"file\":\"/var/www/pvepro/src/XF/Mail/Styler.php\",\"selected\":[{\"line\":85,\"text\":\"\\t\\treturn $this->renderer->render('email:core.less', false);\"},{\"line\":101,\"text\":\"\\t\\t$text = preg_replace('#\\\\s*<style[^>]*>.*</style>\\\\s*#siU', '', $text);\"},{\"line\":102,\"text\":\"\\t\\t$text = preg_replace('#\\\\s*<script[^>]*>.*</script>\\\\s*#siU', '', $text);\"},{\"line\":103,\"text\":\"\\t\\t$text = preg_replace('#<img[^>]*alt=\\\"([^\\\"]+)\\\"[^>]*>#siU', '$1', $text);\"},{\"line\":104,\"text\":\"\\t\\t$text = preg_replace_callback(\"},{\"line\":114,\"text\":\"\\t\\t$text = preg_replace_callback(\"},{\"line\":137,\"text\":\"\\t\\t$text = preg_replace('#<(h[12])[^>]*>(.*)</\\\\\\\\1>#siU', '****** $2 ******', $text);\"},{\"line\":138,\"text\":\"\\t\\t$text = preg_replace('#<(h[34])[^>]*>(.*)</\\\\\\\\1>#siU', '**** $2 ****', $text);\"},{\"line\":139,\"text\":\"\\t\\t$text = preg_replace('#<(h[56])[^>]*>(.*)</\\\\\\\\1>#siU', '** $2 **', $text);\"},{\"line\":140,\"text\":\"\\t\\t$text = preg_replace('#<hr[^>]*>(</hr>)?#i', '---------------', $text);\"},{\"line\":142,\"text\":\"\\t\\t$text = preg_replace('#\\\\s*</td>\\\\s*<td[^>]*>\\\\s*#', ' - ', $text);\"},{\"line\":143,\"text\":\"\\t\\t$text = preg_replace('#\\\\s*</tr>\\\\s*<tr[^>]*>\\\\s*#', \\\"\\\\n\\\", $text);\"},{\"line\":148,\"text\":\"\\t\\t$text = preg_replace('#\\\\n\\\\t+#', \\\"\\\\n\\\", $text);\"},{\"line\":149,\"text\":\"\\t\\t$text = preg_replace('#(\\\\r?\\\\n){3,}#', \\\"\\\\n\\\\n\\\", $text);\"}],\"sha256\":\"f143fd5a6492fba8d7882a433b5d369e35c9acf6ac9550a6ca0268a37553dd46\"}\nCSS_SOURCE_HIT_26={\"bytes\":13176,\"file\":\"/var/www/pvepro/src/XF/Util/Ip.php\",\"selected\":[{\"line\":121,\"text\":\"\\t\\t\\t\\t$ip = str_replace('::', str_repeat(':0', 8 - $delims) . ':', $ip);\"},{\"line\":282,\"text\":\"\\t\\t\\t\\t$output = preg_replace_callback(\"},{\"line\":507,\"text\":\"\\t\\t\\t$ip = preg_replace('/\\\\.+$/', '', $ip);\"},{\"line\":575,\"text\":\"\\t\\t$decompressed = static::binaryToString($ip, false, false);\"},{\"line\":576,\"text\":\"\\t\\tif ($decompressed !== false)\"},{\"line\":578,\"text\":\"\\t\\t\\t$ip = $decompressed;\"},{\"line\":583,\"text\":\"\\t\\t\\t// we need to uncompress the hex address to split this up\"},{\"line\":595,\"text\":\"\\t\\t\\t$checkIp = str_replace(':', '', $checkIp);\"}],\"sha256\":\"a6a5aeb666c47914d714efe36d79fafd66e1f5f55b7fd5f0c71a18313135897f\"}\nCSS_SOURCE_HIT_27={\"bytes\":6589,\"file\":\"/var/www/pvepro/src/XF/DevelopmentOutput/StyleProperty.php\",\"selected\":[{\"line\":67,\"text\":\"\\t\\t$this->queuePropertyLessCacheRebuild($property->addon_id);\"},{\"line\":83,\"text\":\"\\t\\t\\t$this->queuePropertyLessCacheRebuild($addOnId);\"},{\"line\":136,\"text\":\"\\tprotected function queuePropertyLessCacheRebuild($addOnId)\"},{\"line\":138,\"text\":\"\\t\\t\\\\XF::runOnce('stylePropLessCacheRebuild-' . $addOnId, function () use ($addOnId)\"},{\"line\":140,\"text\":\"\\t\\t\\t$this->rebuildPropertyLessCache($addOnId);\"},{\"line\":144,\"text\":\"\\tpublic function rebuildPropertyLessCache($addOnId)\"},{\"line\":146,\"text\":\"\\t\\t$fileName = 'style_properties.less';\"},{\"line\":147,\"text\":\"\\t\\t$finalOutput = $this->getLessCacheFileValue($addOnId);\"},{\"line\":159,\"text\":\"\\tpublic function getLessCacheFileValue($addOnId)\"},{\"line\":179,\"text\":\"\\t\\t\\t\\t$output = $this->compileLessCacheCssProperty($property, $prefix, $cssValue);\"},{\"line\":187,\"text\":\"\\t\\t\\t\\t$output = $this->compileLessCacheValueProperty($property, $prefix);\"},{\"line\":217,\"text\":\"\\tprotected function compileLessCacheValueProperty(\\\\XF\\\\Entity\\\\StyleProperty $property, $prefix)\"},{\"line\":229,\"text\":\"\\tprotected function compileLessCacheCssProperty(\\\\XF\\\\Entity\\\\StyleProperty $property, $prefix, ?array &$valueOutput = null)\"},{\"line\":234,\"text\":\"\\t\\t$value = $propertyRebuilder->standardizeLessCacheValue($property->property_value, $property->css_components);\"},{\"line\":252,\"text\":\"\\t\\t$value = $style->compileCssPropertyValue($value);\"}],\"sha256\":\"d8e57e62294bd1ce54b1b635d1696f2c3faa2dd24bc706e4ce62ebc48f9bb720\"}\nCSS_SOURCE_HIT_28={\"bytes\":51863,\"file\":\"/var/www/pvepro/src/XF/Http/Request.php\",\"selected\":[{\"line\":1679,\"text\":\"\\t\\tif ($via && strpos(strtolower($via), 'chrome-compression-proxy'))\"},{\"line\":1847,\"text\":\"\\t\\t\\t\\t$osVersion = floatval(str_replace('_', '.', $osMatch[1]));\"},{\"line\":2154,\"text\":\"\\t\\t\\t$trailingPath = str_replace(\\\\XF::$DS, '/', $trailingPath);\"},{\"line\":2310,\"text\":\"\\t\\t$url = str_replace($this->getHostUrl(), '', $url);\"},{\"line\":2314,\"text\":\"\\t\\t\\t$url = preg_replace('#^/.*[a-z0-9-_]+\\\\.php\\\\?#i', '?', $url);\"}],\"sha256\":\"5500ebfff942e8c96c0c319146f1605f9a38b92b1270c541feb79b4ab3962934\"}\nCSS_SOURCE_HIT_29={\"bytes\":9737,\"file\":\"/var/www/pvepro/src/XF/Http/Response.php\",\"selected\":[{\"line\":14,\"text\":\"\\tprotected $compressIfAble = true;\"},{\"line\":27,\"text\":\"\\tprotected $compress = false;\"},{\"line\":157,\"text\":\"\\t\\t$fileName = str_replace('\\\"', '', $fileName);\"},{\"line\":169,\"text\":\"\\t\\t\\t$type . '; filename=\\\"' . str_replace('\\\"', '', $fileName) . '\\\"' . $altNamePart,\"},{\"line\":238,\"text\":\"\\t\\t$name = preg_replace('#\\\\s+#', ' ', str_replace('-', ' ', trim($name)));\"},{\"line\":239,\"text\":\"\\t\\t$name = str_replace(' ', '-', ucwords($name));\"},{\"line\":265,\"text\":\"\\tpublic function compressIfAble($compress = null)\"},{\"line\":267,\"text\":\"\\t\\tif ($compress === null)\"},{\"line\":269,\"text\":\"\\t\\t\\treturn $this->compressIfAble;\"},{\"line\":272,\"text\":\"\\t\\t$this->compressIfAble = (bool) $compress;\"},{\"line\":298,\"text\":\"\\t\\t$this->compress = ($this->compressIfAble && $request && $this->contentIsCompressible($request));\"},{\"line\":299,\"text\":\"\\t\\tif ($this->compress)\"},{\"line\":479,\"text\":\"\\t\\t\\tif ($this->compress)\"},{\"line\":497,\"text\":\"\\tpublic function contentIsCompressible(Request $request)\"}],\"sha256\":\"2b8334ffe1afb7717651e5a4278d8c858000d2c0f6dff9c4fdc82209f3b11b9d\"}\nCSS_SOURCE_HIT_30={\"bytes\":5020,\"file\":\"/var/www/pvepro/src/XF/Mvc/Renderer/Html.php\",\"selected\":[{\"line\":79,\"text\":\"\\t\\t\\t\\t\\t$content = str_replace('<!--XF:EXTRA_OUTPUT-->', $errorHtml . '<!--XF:EXTRA_OUTPUT-->', $content);\"},{\"line\":83,\"text\":\"\\t\\t\\t\\t\\t$content = preg_replace('#<body[^>]*>#i', \\\"\\\\\\\\0$errorHtml\\\", $content);\"},{\"line\":92,\"text\":\"\\t\\t$includedCss = $templater->getIncludedCss(['public:extra.less']);\"}],\"sha256\":\"beec569b9d8feb92998678acf018aa7a7fe19c3db7ff986de7010c03aeb146b7\"}\nCSS_SOURCE_HIT_31={\"bytes\":14978,\"file\":\"/var/www/pvepro/src/XF/Service/StyleProperty/RebuildService.php\",\"selected\":[{\"line\":316,\"text\":\"\\t\\t\\t$value = preg_replace_callback(\"},{\"line\":413,\"text\":\"\\t\\t\\t$value = preg_replace_callback(\"},{\"line\":510,\"text\":\"\\t\\t\\t$value = $this->standardizeLessCacheValue(\"},{\"line\":557,\"text\":\"\\tpublic function standardizeLessCacheValue(array $values, array $allowedComponents)\"},{\"line\":664,\"text\":\"\\t\\t\\t$values['background-image'] = preg_replace('/^(\\\"|\\\\')(.*)\\\\\\\\1$/', '\\\\\\\\2', $values['background-image']);\"}],\"sha256\":\"afdf941e40da421164817a7536e39f269419b2273f180252d97cf15019baaf40\"}\nCSS_SOURCE_HIT_32={\"bytes\":1391,\"file\":\"/var/www/pvepro/src/XF/Service/Development/TemplatePhraserService.php\",\"selected\":[{\"line\":15,\"text\":\"\\t\\tif (preg_match('/\\\\.(less|css)$/i', $template->title))\"}],\"sha256\":\"f0e77d578ff13db260f1a4c01d107af9ba5bd1124d84196c21536838a7bea9a1\"}\nCSS_SOURCE_HIT_33={\"bytes\":1536,\"file\":\"/var/www/pvepro/src/XF/Service/Development/TemplateModificationPhraserService.php\",\"selected\":[{\"line\":15,\"text\":\"\\t\\tif (preg_match('/\\\\.(less|css)$/i', $templateModification->template))\"}],\"sha256\":\"2f282469840d3b2d901abf29de6c03995e2d7cf9cf1bf721c93ea5edb1e00c85\"}\nCSS_SOURCE_HIT_34={\"bytes\":4371,\"file\":\"/var/www/pvepro/src/XF/Service/Advertising/WriterService.php\",\"selected\":[{\"line\":53,\"text\":\"\\t\\t\\t$template->save(); // needs to exist regardless\"}],\"sha256\":\"4285d3aa34f02c9c366d22dc1281166990464494177ae87bb7fe4a6a299e00d0\"}\nCSS_SOURCE_HIT_35={\"bytes\":3401,\"file\":\"/var/www/pvepro/src/XF/Service/AddOn/JsMinifierService.php\",\"selected\":[{\"line\":12,\"text\":\"class JsMinifierService extends AbstractService\"},{\"line\":36,\"text\":\"\\t\\t\\t$this->minPath = preg_replace('(\\\\.js$)', '.min.js', $jsPath, 1);\"},{\"line\":70,\"text\":\"\\t * Minify JS code using either the Compiler Service API or local closure\"},{\"line\":76,\"text\":\"\\tpublic function minify()\"}],\"sha256\":\"b8482e34c8cab1c54d7609886b5fd06bea42aed99df7b4dabeb5567a6c786e4b\"}\nSTAGING_GUEST_INSPECTION=SKIPPED_STOPPED_NO_START\nNO_MUTATION=True\nPRODUCTION_UNCHANGED=True\nPRODUCT_CHECKPOINTS_REMAINING=19\nTASK_RESULT=PASS_PVEPRO_VISUAL_STYLE_766_RENDER_RCA\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260920-PVEPRO-VISUAL-STYLE-766-RENDER-RCA-READONLY-767R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n"
}