PageSourceSearch

https://flu-ven.com/terms

html flu-ven.com collected 2026-10-02 01:29:19 UTC 11,142 bytes, 248 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  <meta charset="utf-8"/>
38  <link href="https://media.base44.com/images/public/6a4151b9a46c41550f6a5e2c/6f00673e3_FluvenLogoRound.png" rel="icon" type="image/png"/>
39  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
40  <title>
41   Terms | Fluven
42  </title>
43  <meta content="Terms on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,." name="description"/>
44  <meta content="Terms | Fluven" property="og:title"/>
45  <meta content="Terms on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,." property="og:description"/>
46  <meta content="website" property="og:type"/>
47  <link href="https://fonts.googleapis.com" rel="preconnect"/>
48  <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
49  <!-- Google Analytics (GA4) -->
vendor: 69 bytes, lines 49-50
49
50  <script async="" src="https://www.googletagmanager.com/gtag/js?id=
50G-VZC9Q9Z4CW
vendor: 17 bytes, lines 50-52
50">
51  </script>
52  
52<script>
53   
vendor: 145 bytes, lines 53-56
53window.dataLayer = window.dataLayer || [];
54      function gtag(){dataLayer.push(arguments);}
55      gtag('js', new Date());
56      gtag('config', '
56G-VZC9Q9Z4CW
vendor: 32 bytes, lines 56-57
56', { send_page_view: true });
57  
57</script>
57
58  
58<script crossorigin="" src="/assets/index-CkoIQqOu.js" type="module">
59  </script>
59
60  <link crossorigin="" href="/assets/index-BdwxJBgM.css" rel="stylesheet"/>
61  
61<script type="module">
62   if (window.self === window.top) {
63  let lastPath = "";
64  function getPageNameFromPath(path) {
65    const segments = path.split("/").filter(Boolean);
66    return segments[0] || null;
67  }
68  function trackPageView() {
69    const path = window.location.pathname;
70    if (path === lastPath) return;
71    lastPath = path;
72    const pageName = getPageNameFromPath(path) || "home";
73    const appId = "6a4151b9a46c41550f6a5e2c";
74    if (!appId) return;
75    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
76      method: "POST",
77    }).catch(() => {});
78  }
79  const originalPushState = history.pushState.bind(history);
80  history.pushState = function (...args) {
81    originalPushState(...args);
82    trackPageView();
83  };
84  const originalReplaceState = history.replaceState.bind(history);
85  history.replaceState = function (...args) {
86    originalReplaceState(...args);
87    trackPageView();
88  };
89  window.addEventListener("popstate", trackPageView);
90  trackPageView();
91}
92  </script>
92
93  <meta content="https://media.base44.com/images/public/6a4151b9a46c41550f6a5e2c/3ebde6bb1_fluven-icon.svg/v1/fill/w_1200,h_630/3ebde6bb1_fluven-icon.svg" property="og:image"/>
94  <meta content="https://flu-ven.com/terms" property="og:url"/>
95  <meta content="Fluven" property="og:site_name"/>
96  <meta content="Terms | Fluven" name="twitter:title"/>
97  <meta content="Terms on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,." name="twitter:description"/>
98  <meta content="https://media.base44.com/images/public/6a4151b9a46c41550f6a5e2c/3ebde6bb1_fluven-icon.svg/v1/fill/w_1200,h_630/3ebde6bb1_fluven-icon.svg" name="twitter:image"/>
99  <meta content="summary_large_image" name="twitter:card"/>
100  <meta content="https://flu-ven.com/terms" name="twitter:url"/>
101  
101<script>
102   (function () {
103  var titles = {"/": "Fluven", "/product": "Product | Fluven", "/privacy": "Privacy | Fluven", "/terms": "Terms | Fluven", "/insights": "Insights | Fluven", "/login": "Login | Fluven", "/register": "Register | Fluven", "/forgot-password": "Forgot Password | Fluven", "/reset-password": "Reset Password | Fluven", "/home": "Fluven"};
104  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
105  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
106  var dashed = function (s) {
107    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
108  };
109  var decode = function (s) {
110    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
111    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
112    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
113  };
114  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
115  var norm = function (path) {
116    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
117    return parts.length ? "/" + parts.join("/") : "/";
118  };
119  var lastPath = location.pathname, written = document.title, on = true;
120  var sync = function () {
121    // Path only: a hash/query change is the same page, and the SDK strips its own auth
122    // params with replaceState -- neither must clobber a server-rendered title in place.
123    if (!on || location.pathname === lastPath) return;
124    lastPath = location.pathname;
125    if (document.title !== written) { on = false; return; }
126    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
127    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
128    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
129    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
130    // a redirect landing on an unmapped path would bake the placeholder into the stored
131    // snapshot. Leaving the title alone degrades to today's behavior instead.
132    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
133    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
134    // dashes there, and the client cannot tell the two apart. The map emits every reachable
135    // shape per segment instead (_client_url_variants).
136    var title = titles[norm(location.pathname)];
137    if (title === undefined) return;
138    document.title = title;
139    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
140    // keeping the assigned string would make the next sync() read our own write as the app's.
141    written = document.title;
142  };
143  var wrap = function (fn) {
144    // The history entry is already pushed by the time sync() runs, so a throw here would
145    // surface inside the host app's router and break navigation. This is injected into apps
146    // we cannot test, so it swallows rather than trusting the trace.
147    return function () {
148      var r = fn.apply(this, arguments);
149      try { sync(); } catch (e) {}
150      return r;
151    };
152  };
153  history.pushState = wrap(history.pushState);
154  history.replaceState = wrap(history.replaceState);
155  window.addEventListener("popstate", sync);
156})();
157  </script>
157
158  <meta content="yes" name="mobile-web-app-capable"/>
159  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
160  <meta content="Fluven" name="apple-mobile-web-app-title"/>
161  <link href="https://flu-ven.com/terms" rel="canonical"/>
162  
162<script data-seo-source="builder" type="application/ld+json">
163   {"name": "Fluven", "@context": "https://schema.org", "@type": "WebSite", "url": "https://flu-ven.com"}
164  </script>
164
165  
165<script data-seo-source="builder" type="application/ld+json">
166   {"name": "Fluven", "logo": "https://media.base44.com/images/public/6a4151b9a46c41550f6a5e2c/cd29aa785_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://flu-ven.com"}
167  </script>
167
168  
168<script data-seo-source="builder" type="application/ld+json">
169   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://flu-ven.com/"}, {"@type": "ListItem", "position": 2, "name": "Terms | Fluven", "item": "https://flu-ven.com/terms"}]}
170  </script>
170
171 </head>
172 <body>
173  <div id="root">
174   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
175    <main>
176     <header>
177      <h1>
178       Terms | Fluven
179      </h1>
180      <p>
181       Terms on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
182      </p>
183     </header>
184     <nav aria-label="Pages">
185      <h2>
186       Pages
187      </h2>
188      <ul>
189       <li>
190        <a href="/">
191         Home
192        </a>
193       </li>
194       <li>
195        <a href="/product">
196         Product
197        </a>
198        — Product on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
199       </li>
200       <li>
201        <a href="/privacy">
202         Privacy
203        </a>
204        — Privacy on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
205       </li>
206       <li>
207        <a href="/terms">
208         Terms
209        </a>
210        — Terms on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
211       </li>
212       <li>
213        <a href="/insights">
214         Insights
215        </a>
216        — Insights on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
217       </li>
218       <li>
219        <a href="/login">
220         Login
221        </a>
222        — Login on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
223       </li>
224       <li>
225        <a href="/register">
226         Register
227        </a>
228        — Register on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
229       </li>
230       <li>
231        <a href="/forgot-password">
232         Forgot Password
233        </a>
234        — Forgot Password on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
235       </li>
236       <li>
237        <a href="/reset-password">
238         Reset Password
239        </a>
240        — Reset Password on Fluven. Sustainability intelligence platform that scores every Amazon product on carbon,.
241       </li>
242      </ul>
243     </nav>
244    </main>
245   </div>
246  </div>
247 </body>
248</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.