Domain app.cutviewer.com
CLOUDFLARENET
Software information

cloudflare cloudflare

tcp/443 tcp/80

  • MacOS file listing through .DS_Store file
    First seen 2025-08-28 23:48
    Last seen 2026-01-02 20:22
    Open for 126 days
  • MacOS file listing through .DS_Store file
    First seen 2025-08-28 23:48
    Last seen 2026-01-02 16:30
    Open for 126 days
  • Open service 104.21.42.26:443 · app.cutviewer.com

    2026-01-09 21:00

    HTTP/1.1 200 OK
    Date: Fri, 09 Jan 2026 21:00:23 GMT
    Content-Type: text/html
    Content-Length: 7511
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    ETag: "64629fd964e6c0e45b555537af60787f"
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=N4OwEOB8amvCZU9BSygqxsw5S60uSN%2B1f0PfZ7RtacYgAEQafTU%2FgAIW%2Fsz6BGQPpEVyYjewW5kh15AjMERfQxAnlDLHdFYSc3AI7UJJkxuQ"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server: cloudflare
    CF-RAY: 9bb6dd284be8feaf-AMS
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2026-01-09 by HttpPlugin
    Create report
  • Open service 104.21.42.26:80 · app.cutviewer.com

    2026-01-09 12:36

    HTTP/1.1 200 OK
    Date: Fri, 09 Jan 2026 12:36:02 GMT
    Content-Type: text/html
    Content-Length: 7511
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    ETag: "64629fd964e6c0e45b555537af60787f"
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=e%2BgXtbEobWlZAREZGZhJ43m3aZC1rlYEoZ0fZmYxsJqQPbAI7oGMkIRxsqWZvC0nLOJW1%2FDECiQqRjEcGwr2S1FNBi1GIjvjNLsv2I5EFrn9"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server: cloudflare
    CF-RAY: 9bb3fa5d5c7e227b-LHR
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2026-01-09 by HttpPlugin
    Create report
  • Open service 104.21.42.26:80 · app.cutviewer.com

    2026-01-02 20:22

    HTTP/1.1 200 OK
    Date: Fri, 02 Jan 2026 20:22:40 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Server-Timing: cfCacheStatus;desc="HIT"
    Server-Timing: cfEdge;dur=41,cfOrigin;dur=0
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ynUW%2FYtWKad5sqCVGWlgRnIxoIqOkHV0xczV6Pw3ByhU%2BDqpQkIIDaMlQRvWzhTSy3jF25xoX7MPHCMMrCu2Xn8gSh7sd0QNQSkMijHNgw%3D%3D"}]}
    Server: cloudflare
    CF-RAY: 9b7cf848cb290b11-EWR
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2026-01-02 by HttpPlugin
    Create report
  • Open service 104.21.42.26:443 · app.cutviewer.com

    2026-01-02 16:30

    HTTP/1.1 200 OK
    Date: Fri, 02 Jan 2026 16:30:00 GMT
    Content-Type: text/html
    Content-Length: 7511
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    ETag: "64629fd964e6c0e45b555537af60787f"
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=zwJfu2%2B94X9Aqzm3oSO%2BdFxilI9YFF9nik3UFMSJoVtxPcuAq8S4bVFuEY68QP1PBVaHoJ9bzk6vbawiGk76EnrHfWypCh6gESkX%2FfTInK0P"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server: cloudflare
    CF-RAY: 9b7ba3756a0b0ad6-FRA
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2026-01-02 by HttpPlugin
    Create report
  • Open service 104.21.42.26:443 · app.cutviewer.com

    2025-12-23 06:16

    HTTP/1.1 200 OK
    Date: Tue, 23 Dec 2025 06:16:16 GMT
    Content-Type: text/html
    Content-Length: 7511
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    ETag: "64629fd964e6c0e45b555537af60787f"
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=6BfstQUAd81BadfIJGwFGNTpa5CftX9zIr3sNP0%2BDvBDTy5o2ZLvVagQOxzoRHYJ%2F2KFh8e6Q6u0j2EwsHSIA%2F%2BI9daSe%2B6W28sIlMpPXx7z"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server: cloudflare
    CF-RAY: 9b25baacda3c9064-FRA
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2025-12-23 by HttpPlugin
    Create report
  • Open service 104.21.42.26:80 · app.cutviewer.com

    2025-12-22 15:11

    HTTP/1.1 200 OK
    Date: Mon, 22 Dec 2025 15:11:00 GMT
    Content-Type: text/html
    Content-Length: 7511
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    ETag: "64629fd964e6c0e45b555537af60787f"
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3i4gJg4uxbRjkSQdQzvsT%2F8WJqonUFDFBWYQdDR5OQWzWpeb96%2B4Nx6C8wot0XMdYcn9AHW5w6tRS%2BrTJrgadUzbcXiAdFcvEmqrzjiMFN%2Be"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server: cloudflare
    CF-RAY: 9b208c9eecad2534-LHR
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 104.21.42.26:443 · app.cutviewer.com

    2025-12-20 23:19

    HTTP/1.1 200 OK
    Date: Sat, 20 Dec 2025 23:19:54 GMT
    Content-Type: text/html
    Content-Length: 7511
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    ETag: "64629fd964e6c0e45b555537af60787f"
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=K0zXXWuWyx9I8DZXZ3a8T%2FKTgRiKj7xqe9CcEg9dYVrAd%2BVgTmeAyPOKDJKNHNEGV0I5ZobN%2F4xNMJ8arepMboTv606%2F4vtrHsr47ohmvy%2Bl"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server: cloudflare
    CF-RAY: 9b12de035c72760b-AMS
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2025-12-20 by HttpPlugin
    Create report
  • Open service 104.21.42.26:80 · app.cutviewer.com

    2025-12-20 11:12

    HTTP/1.1 200 OK
    Date: Sat, 20 Dec 2025 11:12:43 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Server-Timing: cfCacheStatus;desc="HIT"
    Server-Timing: cfEdge;dur=55,cfOrigin;dur=0
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=T%2BiEw%2BphQJ4%2FPmDgMuOMElqu45v%2BmxnpJQ2nB4%2FSvkxk4KFQS8GybyEGrWPNUG6yPn6e4TQvzyZ9D2iRJiPK8fdK6hLoIJYloWLRhqzrDA%3D%3D"}]}
    Server: cloudflare
    CF-RAY: 9b0eb4d0c9e46d50-EWR
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2025-12-20 by HttpPlugin
    Create report
  • Open service 104.21.42.26:443 · app.cutviewer.com

    2025-12-19 01:17

    HTTP/1.1 200 OK
    Date: Fri, 19 Dec 2025 01:17:30 GMT
    Content-Type: text/html
    Content-Length: 7511
    Connection: close
    CF-Cache-Status: HIT
    Cache-Control: public, max-age=0, must-revalidate
    ETag: "64629fd964e6c0e45b555537af60787f"
    referrer-policy: strict-origin-when-cross-origin
    x-content-type-options: nosniff
    x-frame-options: DENY
    Vary: accept-encoding
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=zpcR%2Fzudw%2FFy4npTmyC0QVOuWMbXdSXG25uY3WM61OpOjPQh7fo3evL9nzliLp%2FMSVwPASIcbpSksF4s1JatiHKeK3HZjhaQXivtdNzWPQV7"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server: cloudflare
    CF-RAY: 9b030f88bb8226f7-LHR
    alt-svc: h3=":443"; ma=86400
    
    Page title: CutViewer
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CutViewer</title>
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="styles/main.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
        <script defer data-domain="cutviewer.com" src="https://pl.cutcomposer.com/js/script.tagged-events.js"></script>
        <!-- Ace Editor -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ace.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.2/ext-language_tools.min.js"></script>
    </head>
    <body>
        <script>
            // Console capture shim - must be first script
            (function() {
                window.__consoleLogs = [];
                const originalConsole = {
                    log: console.log,
                    error: console.error,
                    warn: console.warn,
                    info: console.info,
                    debug: console.debug
                };
                
                ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
                    console[method] = function(...args) {
                        window.__consoleLogs.push({
                            type: method,
                            timestamp: new Date().toISOString(),
                            message: args.map(arg => {
                                try {
                                    return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
                                } catch (e) {
                                    return String(arg);
                                }
                            }).join(' ')
                        });
                        
                        // Keep logs to a reasonable size
                        if (window.__consoleLogs.length > 1000) {
                            window.__consoleLogs.shift();
                        }
                        
                        // Call original method
                        originalConsole[method].apply(console, args);
                    };
                });
            })();
            
            // Initialize theme immediately to prevent flash of wrong theme
            (function() {
                const savedTheme = document.cookie.split('; ')
                    .find(row => row.startsWith('theme='))
                    ?.split('=')[1] || 'dark';
                
                document.documentElement.setAttribute('data-theme', savedTheme);
                
                // Also update theme icon if it exists
                window.addEventListener('DOMContentLoaded', function() {
                    const themeIcon = document.querySelector('.theme-icon');
                    if (themeIcon) {
                        themeIcon.textContent = savedTheme === 'dark' ? '🌙' : '☀️';
                    }
                });
            })();
        </script>
        <div class="app-container">
            <!-- Unified Header -->
            <div class="app-header">
                <div class="header-left">
                    <a href="https://cutviewer.com/" id="logo-link" class="logo-link">
                        <h3>CutViewer</h3>
                    </a>
                    <div class="file-controls">
                        <input type="file" id="file-input" accept=".nc,.gcode,.txt,.ngc,.tap,.cnc" style="display: none;">
                        <button id="open-file-btn">Open File</button>
                    </div>
                </div>
                <div class="header-right">
                    <div class="view-controls">
                        <button id="view-top" class="view-btn" data-view="top">Top</button>
                        <button id="view-front" class="view-btn" data-view="front">Front</button>
                        <button id="view-left" class="view-btn" data-view="left">Left</button>
                    
    Found 2025-12-19 by HttpPlugin
    Create report
cutviewer.comapp.cutviewer.com
CN:
cutviewer.com
Key:
ECDSA-256
Issuer:
WE1
Not before:
2025-12-24 23:16
Not after:
2026-03-25 00:16
cutviewer.comapp.cutviewer.com
CN:
cutviewer.com
Key:
ECDSA-256
Issuer:
WE1
Not before:
2025-10-26 23:00
Not after:
2026-01-25 00:00
Domain summary
IP summary