1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="utf-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 <title>PPOA Group | Custom Software for Business Growth</title> 8 <meta name="description" content="PPOA Group builds and manages specialized SaaS platforms across parking, towing, multifamily, and computer vision."> 9 <meta name="theme-color" content="#000000"> 10 <base href="/" /> 11 <link rel="stylesheet" href="css/tailwind.css?v=1.3" /> 12 <link rel="icon" type="image/png" href="images/ppoagrouplogo.png" /> 13 <link rel="apple-touch-icon" href="images/ppoagrouplogo.png" /> 14 <link href="PPOAGroup.Client.styles.css?v=20260604b" rel="stylesheet" /> 15</head> 16 17<body> 18 <div id="app"> 19 <div style="display:flex;align-items:center;justify-content:center;min-height:100vh;background:#000;color:#5aa7ff;font-family:'Segoe UI',sans-serif;"> 20 <div style="text-align:center;"> 21 <img src="images/ppoagrouplogo.png" alt="" style="width:60px;height:60px;margin-bottom:1rem;opacity:0.6;" /> 22 <div style="font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;opacity:0.7;">Loading...</div> 23 </div> 24 </div> 25 </div> 26 27 <div id="blazor-error-ui"> 28 An unhandled error has occurred. 29 <a href="" class="reload">Reload</a> 30 <a class="dismiss">X</a> 31 </div> 32
32<script src="js/documentViewer.js"></script>
32 33
33<script src="js/pdfEditor.js"></script>
33 34
34<script src="js/fileDownload.js"></script>
34 35 <!-- 36 Cache-bust query string â bump the `v` value any time the JS contract 37 changes (e.g. renderPage return type). Browsers cache static JS by URL, 38 so without a query change the browser will keep serving the previous 39 version of the file even after a redeploy. Same pattern as the 40 tailwind.css?v=1.0 above. 41 --> 42
42<script src="js/forms-pdfjs-interop.js?v=2026-04-29-r5"></script>
42 43
43<script src="js/form-signature-pad.js?v=2026-04-29-r5"></script>
43 44 <!-- Twilio Voice SDK v2 (browser dialer). Pinned 2.10.2 release. 45 Served via jsDelivr's npm mirror â sdk.twilio.com 403s the voice-2.x path, 46 twiliocdn.com 404s. jsDelivr serves the @twilio/voice-sdk package directly 47 (Cache-Control: immutable, max-age=1y). 48 Migrate to a local bundle once npm tooling is wired into the Blazor build. 49 onerror sets a sentinel that dialer.js / Blazor read to surface a clear 50 "Voice library failed to load" message instead of silently doing nothing. --> 51
51<script src="https://cdn.jsdelivr.net/npm/@twilio/[email protected]/dist/twilio.min.js" 52 onerror="window.__ppoaTwilioSdkLoadFailed = true; console.error('[ppoa] Twilio Voice SDK failed to load from jsDelivr â dialer will be unavailable until refresh.');" 53 onload="window.__ppoaTwilioSdkLoaded = (typeof Twilio !== 'undefined' && !!Twilio.Device);"></script>
53 54
54<script src="js/dialer.js?v=2026-05-08-r2"></script>
54 55 <!-- AI conference (Sales Agent). Own Twilio.Device, separate from dialer.js. --> 56
56<script src="js/conference.js?v=2026-05-29-r1"></script>
56 57
57<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
57 58
58<script src="_framework/blazor.webassembly.js"></script>
58
59<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"80ee875cf43e4a50ac2446c6e2216951","r":1,"spa":2}' crossorigin="anonymous"></script>
59 60</body> 61 62</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.