CINXE.COM

Forks & fork extensions | CAM attachments

<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <!-- Google Tag Manager STAGING snippet --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer', 'GTM-NMP2NCS'); </script> <!-- End Google Tag Manager --> <!-- Google Tag Manager STAGING snippet --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer', 'GTM-T5VXB9W'); </script> <!-- End Google Tag Manager --> <meta charset="utf-8" /><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"NRJS-b9938b7a1ebcf202765",applicationID:"941808955"};;/*! For license information please see nr-loader-rum-1.283.2.min.js.LICENSE.txt */ (()=>{var e,t,r={122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},217:(e,t,r)=>{"use strict";r.d(t,{D0:()=>m,gD:()=>v,xN:()=>h});r(860).K7.genericEvents;const n="experimental.marks",i="experimental.measures",o="experimental.resources",a=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var s=r(614),c=r(944),u=r(384),l=r(122);const d="[data-nr-mask]",f=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(i)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:s.wk,inactiveMs:s.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){a(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,c.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){a(t)?e.block_selector+=",".concat(t):""!==t&&(0,c.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,c.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},g={},p="All configuration objects require an agent identifier!";function m(e){if(!e)throw new Error(p);if(!g[e])throw new Error("Configuration for ".concat(e," was never set"));return g[e]}function h(e,t){if(!e)throw new Error(p);g[e]=(0,l.a)(t,f());const r=(0,u.nY)(e);r&&(r.init=g[e])}function v(e,t){if(!e)throw new Error(p);var r=m(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>d});var n=r(122),i=r(384),o=r(154),a=r(324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},l={};function d(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!l[e])throw new Error("Runtime for ".concat(e," was never set"));return l[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");l[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(l[e],"harvestCount")||Object.defineProperty(l[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=l[e])}},324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.283.2",i="PROD",o="CDN"},154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>l,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,l=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>d,x3:()=>u});var n=r(836),i=r(606),o=r(860),a=r(646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};l(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function l(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function d(e="",t="feature",r=!1){if(l(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(990),o=r(371),a=r(646),s=r(607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},l={},d=!1;try{d=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=m(e),l=c.length,d=0;d<l;d++)c[d].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:d?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:d};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return l[t]=l[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),l=(0,n.Zm)();l.ee||(l.ee=u)},646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(566).bz)()},566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(836),i=r(154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>l,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>d});var n=r(154),i=r(863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function l(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(836),i=r(607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];l(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return l(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,l,d;try{a=this,o=[...arguments],l="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],l],e)}i(r+"start",[o,a,s],l,c);try{return d=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],l,c),e}finally{i(r+"end",[o,a,d],l,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log";n.K7.logging},773:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(154),r(566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(836),i=r(687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},603:(e,t,r)=>{"use strict";r.d(t,{j:()=>K});var n=r(860),i=r(555),o=r(371),a=r(908),s=r(836),c=r(687),u=r(289),l=r(154),d=r(944),f=r(773),g=r(384),p=r(344);const m=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],h=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(863),b=r(614),y=r(993);var w=r(646),R=r(434);const A=new Map;function E(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,d.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,R.YM)(i),a=new w.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[R.Jt]||t[r];return A.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>A.get(c))),i}function _(){const e=(0,g.pV)();m.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,d.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function N(e,t,g=!1){t||(0,c.Ak)(e,"api");const m={};var w=s.ee.get(e),R=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var A="api-",_=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(A,n,!0,o||null===r?"session":void 0)(t,r)}function k(){}m.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,v.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},m.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),E(w,e,t,{customAttributes:r,level:i})},h.forEach((e=>{m[e]=j(A,e,!0,"api")})),m.addPageAction=j(A,"addPageAction",!0,n.K7.genericEvents),m.recordCustomEvent=j(A,"recordCustomEvent",!0,n.K7.genericEvents),m.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(A,"setPageViewName",!0)()},m.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,d.R)(40,typeof t)}else(0,d.R)(39,typeof e)},m.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,d.R)(41,typeof e)},m.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,d.R)(42,typeof e)},m.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,d.R)(23,e)}},m[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},m[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},m.interaction=function(e){return(new k).get("object"==typeof e?e:{})};const T=k.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,w),function(){if(R.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw R.emit("fn-err",[arguments,this,t],r),t}finally{R.emit("fn-end",[(0,v.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,w),r?void 0:this}}function I(){r.e(296).then(r.bind(r,778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,d.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{T[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),m.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(A,"routeName",!0,n.K7.spa),m.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},l.RI?(0,u.GG)((()=>I()),!0):I(),m}var k=r(217),T=r(122);const j={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},I={};var O=r(284);const S=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function K(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:d={},exposed:f=!0}=t;d.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,k.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");I[e]=(0,T.a)(t,j);const r=(0,g.nY)(e);r&&(r.loader_config=I[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},l.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const m=(0,k.D0)(e.agentIdentifier),h=[c.beacon,c.errorBeacon];P||(m.proxy.assets&&(S(m.proxy.assets),h.push(m.proxy.assets)),m.proxy.beacon&&h.push(m.proxy.beacon),_(),(0,g.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===m.soft_navigations.enabled&&m.feature_flags.includes("soft_nav")),d.denyList=[...m.ajax.deny_list||[],...m.ajax.block_internal?h:[]],d.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,d),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=N(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),P=!0}},374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.283.2.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.283.2.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var d=u[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){s=d;break}}if(!s){c=!0;var f={296:"sha512-2Y8GMAOGF658KnXzOZ/v+DlLch8TBFvV0tTNnOy9wrpvtDa1t5CdZMyX+LubTymBlzPp6NUjllBghMCZqXBPmg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={374:0,840:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.283.2.PROD"]=self["webpackChunk:NRBA-1.283.2.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(374);var e=i(944),t=i(344),r=i(566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(217);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var l=i(603);var d=i(687),f=i(234),g=i(289),p=i(154),m=i(384);const h=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function v(e){return!!(0,m.dV)().o.MO&&h(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,d.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,d.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(h(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,d.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,d.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return v(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(630);class R extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var A=i(908),E=i(843),_=i(878),x=i(782),N=i(863);class k extends y{static featureName=x.T;constructor(e,t=!0){super(e,x.T,t),p.RI&&((0,E.u)((()=>(0,A.p)("docHidden",[(0,N.t)()],void 0,x.T,this.ee)),!0),(0,_.sp)("pagehide",(()=>(0,A.p)("winPagehide",[(0,N.t)()],void 0,x.T,this.ee))),this.importAggregator(e))}}var T=i(773);class j extends y{static featureName=T.TZ;constructor(e,t=!0){super(e,T.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,m.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,l.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,m.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,k,j],loaderType:"lite"})})()})();</script> <noscript><style>form.antibot * :not(.antibot-message) { display: none !important; }</style> </noscript><link rel="canonical" href="https://www.camattachments.com/products/forks-fork-extensions" /> <script type="text/javascript" src="//cdn.optimizely.com/js/19594932999.js"></script> <meta name="Generator" content="Drupal 10 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> <script src="https://cdn-cookieyes.com/client_data/149324a5ee61440c9e931b36/script.js" type="text/javascript" id="cookieyes"></script> <link rel="apple-touch-icon" sizes="180x180" href="/sites/camattachments/themes/custom/dropsolid-base/favicons/generated/apple-touch-icon.png" /> <link rel="icon" sizes="32x32" href="/sites/camattachments/themes/custom/dropsolid-base/favicons/generated/favicon-32x32.png" /> <link rel="icon" sizes="16x16" href="/sites/camattachments/themes/custom/dropsolid-base/favicons/generated/favicon-16x16.png" /> <link rel="mask-icon" href="/sites/camattachments/themes/custom/dropsolid-base/favicons/generated/safari-pinned-tab.svg" color="#5bbad5" /> <meta name="theme-color" content="#FFFFFF" /> <link rel="icon" href="/sites/camattachments/themes/custom/dropsolid-base/favicon.ico" type="image/vnd.microsoft.icon" /> <title>Forks &amp; fork extensions | CAM attachments</title> <link rel="stylesheet" media="all" href="/sites/camattachments/files/css/css_A4Z4rW91vWnJOm54z3emk2rukeLPVSzPge40irbMexU.css?delta=0&amp;language=en&amp;theme=dropsolid_base&amp;include=eJxtjlsOAyEIRTdEdEmGUeqYoBjQmbSrr23SNNP0h8fhXiBiDSdtN9EadmyJSc3HP9DNUcHuNqj6DY0gMprdL3UlM8xkEEXJt2VHLg-CceyB157SsvUl8L8gKOUibaVUlOIAloi8dIrNGMeaGSSVbsIlhddNf23hKHSaf0dXJU0m6KiYFftuSzw7svsSN1ufGxfbKX3eb5LoCVrba4U" /> <link rel="stylesheet" media="all" href="/sites/camattachments/files/css/css_qgMwBrRiXy62O_IAj-SeF_K0wipTZHwZb5lblflJYwg.css?delta=1&amp;language=en&amp;theme=dropsolid_base&amp;include=eJxtjlsOAyEIRTdEdEmGUeqYoBjQmbSrr23SNNP0h8fhXiBiDSdtN9EadmyJSc3HP9DNUcHuNqj6DY0gMprdL3UlM8xkEEXJt2VHLg-CceyB157SsvUl8L8gKOUibaVUlOIAloi8dIrNGMeaGSSVbsIlhddNf23hKHSaf0dXJU0m6KiYFftuSzw7svsSN1ufGxfbKX3eb5LoCVrba4U" /> <script src="/sites/camattachments/files/js/optimized/js_eh1vMcrIeKp01syDIbFc4M9zCwpRglUJekbaAvmmLRM.WCzAhd2P6gRJF9Hv3oOOd-hFJi_QJbv-Azn4CGB8gfY.js?v=3.0.5"></script> <script src="/sites/camattachments/files/js/optimized/js_X6XUvedtWHwkHHkBb56i3F0TsO3xCvG3qROENt0M2eg.ib_9uYyhSCZ9hVcAQBeeRr_nUY9Nlk8SxkesK62PY7M.js?v=10.1.6"></script> </head> <body class="layout-no-sidebars path-taxonomy"> <a href="#main-content" class="visually-hidden focusable skip-link"> Skip to main content </a> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <nav class="tabs"> </nav> <header role="banner"> <div class="menu-toggle--wrapper"> <a class="menu-toggle" href="javascript:void(0);"> <div class="menu"><span class="icon">&nbsp;</span></div> </a> </div> <div id="block-dropsolid-base-branding" class="clearfix block block-system block-system-branding-block"> <div class="site-info"> <a href="/" title="Home" rel="home" class="site-logo"> <img src="/sites/camattachments/themes/custom/dropsolid-base/logo.svg" alt="Home" /> </a> </div> </div> <div class="header-inner"> <nav role="navigation" aria-labelledby="block-useraccountmenu-menu" id="block-useraccountmenu" class="block block-menu navigation menu--account"> <span class="visually-hidden" id="block-useraccountmenu-menu">User account menu</span> <ul class="clearfix menu"> <li class="menu-item"> <a href="/user/login" data-drupal-link-system-path="user/login">Log in</a> </li> </ul> </nav> <div id="block-languageswitcher" class="block block-tvh-landingspage block-tvh-language-switcher-block"> <a href="/landingspage?destination=en/products/forks-fork-extensions">English</a> </div> <div class="views-exposed-form block-views-exposed-filter-blocksearch-search__page block block-views" data-drupal-selector="views-exposed-form-search-search-page" id="block-exposedformsearchsearch-page"> <form action="/search" method="get" id="views-exposed-form-search-search__page" accept-charset="UTF-8"> <div class="form--inline clearfix"> <div class="js-form-item form-item js-form-type-textfield form-type-textfield js-form-item-key form-item-key"> <label for="edit-key">Search</label> <input data-drupal-selector="edit-key" type="text" id="edit-key" name="key" value="" size="30" maxlength="128" class="form-text" /> </div> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"><input data-drupal-selector="edit-submit-search" type="submit" id="edit-submit-search" value="Search" class="button js-form-submit form-submit" /> </div> </div> </form> </div> </div> <div id="navigation"> <div class="navigation-inner"> <nav role="navigation" aria-labelledby="block-dropsolid-base-main-menu-menu" id="block-dropsolid-base-main-menu" class="block block-menu navigation menu--main"> <span class="visually-hidden" id="block-dropsolid-base-main-menu-menu">Main navigation</span> <ul class="clearfix menu"> <li class="menu-item menu-item--active-trail"> <a href="/products" data-drupal-link-system-path="node/23">Products</a> </li> <li class="menu-item"> <a href="/residual-capacity-calculator" data-drupal-link-system-path="node/5813">Residual capacity calculator</a> </li> <li class="menu-item"> <a href="/media" data-drupal-link-system-path="node/5804">Media</a> </li> <li class="menu-item menu-item--expanded"> <a href="/about-us" data-drupal-link-system-path="node/5811">About us</a> <ul class="menu"> <li class="menu-item"> <a href="/about-us/about-cam-attachments" data-drupal-link-system-path="node/5810">About CAM attachments</a> </li> <li class="menu-item"> <a href="/about-us/quality" data-drupal-link-system-path="node/5812">Quality</a> </li> <li class="menu-item"> <a href="/about-us/discover-our-products-trade-shows" data-drupal-link-system-path="node/5874">Trade shows</a> </li> <li class="menu-item"> <a href="/about-us/customer-stories" data-drupal-link-system-path="node/5900">Customer stories</a> </li> </ul> </li> <li class="menu-item"> <a href="/blog" data-drupal-link-system-path="node/2">Blog</a> </li> <li class="menu-item"> <a href="/contact-us" data-drupal-link-system-path="node/5809">Contact us</a> </li> </ul> </nav> <div id="block-capacitycalculatorheader" class="capacity-calculator-header bundle-link view-mode-full block block-block-content block-block-content61fa73e4-ac1b-489f-8c08-4ee86bbe0f10"> <div class="field field--name-field-link field--type-link field--label-hidden field__items"> <div class="field__item"><a href="/become-customer"> Become a customer</a></div> </div> </div> </div> </div> </header> <div id="block-dropsolid-base-breadcrumbs" class="block block-system block-system-breadcrumb-block"> <nav class="breadcrumb" role="navigation" aria-labelledby="system-breadcrumb"> <span id="system-breadcrumb" class="visually-hidden">Breadcrumb</span> <ol> <li> <a href="/">Home</a> </li> <li> <a href="/products">Products</a> </li> <li> Forks & fork extensions </li> </ol> </nav> </div> <div data-drupal-messages-fallback class="hidden"></div> <main role="main" class="main"> <a id="main-content" tabindex="-1"></a> <div class="layout-content"> <div id="block-dropsolid-base-page-title" class="block block-core block-page-title-block"> <h1 class="page-title"> <div class="field field--name-name field--type-string field--label-hidden field__item">Forks &amp; fork extensions</div> </h1> </div> <div id="block-dropsolid-base-content" class="block block-system block-system-main-block"> <div class="bundle--product-categories view-mode--full taxonomy-term vocabulary-product-categories" id="taxonomy-term-36"> <div class="content content-without-sidebar"> <div class="field field--name-field-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--overview paragraph--id--67 paragraph--view-mode--default"> <div class="field field--name-field-view field--type-viewsreference field--label-hidden field__item"><div class="views-element-container"><div class="view view-product view-id-product view-display-id-block_4 js-view-dom-id-2a9698e3484fe9d51f5b292438bd4bc24d5baac9d789e0ae1081d70d6cef8048"> <div class="view-content"> <div class="view-grouping"> <div class="view-grouping-header"></div> <div class="view-grouping-content"> <div class="views-row"> <article class="node node--type-product node--view-mode-teaser"> <a href="/products/forks-fork-extensions/reach-forks-rhf"> <img loading="lazy" src="/sites/camattachments/files/styles/max_480x270/public/2020-04/RHF.png?itok=1VF4iSDs" width="480" height="270" alt="Reach forks (RHF)" class="image-style-max-480x270" /> <h2> <span class="field field--name-title field--type-string field--label-hidden">Reach forks (RHF)</span> </h2> <div class="node__content"> </div> </a> </article> </div> <div class="views-row"> <article class="node node--type-product node--view-mode-teaser"> <a href="/products/forks-fork-extensions/weighing-fork-lithium-battery-wgf-l"> <img loading="lazy" src="/sites/camattachments/files/styles/max_480x270/public/2019-04/iForks-32-TVH.jpg?itok=FmacWOac" width="480" height="270" alt="Weighing fork with lithium battery (WGF-L)" class="image-style-max-480x270" /> <h2> <span class="field field--name-title field--type-string field--label-hidden">Weighing fork with lithium battery (WGF-L)</span> </h2> <div class="node__content"> </div> </a> </article> </div> <div class="views-row"> <article class="node node--type-product node--view-mode-teaser"> <a href="/products/forks-fork-extensions/fork-extension-open-ext2"> <img loading="lazy" src="/sites/camattachments/files/styles/max_480x270/public/2019-02/EXT02.jpg?itok=uEJ6U4Pz" width="480" height="270" alt="Fork extension - open (EXT2)" class="image-style-max-480x270" /> <h2> <span class="field field--name-title field--type-string field--label-hidden">Fork extension - open (EXT2)</span> </h2> <div class="node__content"> </div> </a> </article> </div> <div class="views-row"> <article class="node node--type-product node--view-mode-teaser"> <a href="/products/forks-fork-extensions/fork-extension-closed-ext"> <img loading="lazy" src="/sites/camattachments/files/styles/max_480x270/public/2019-02/EXT.jpg?itok=49XUzcMC" width="480" height="270" alt="Fork extension - closed (EXT)" class="image-style-max-480x270" /> <h2> <span class="field field--name-title field--type-string field--label-hidden">Fork extension - closed (EXT)</span> </h2> <div class="node__content"> </div> </a> </article> </div> <div class="views-row"> <article class="node node--type-product node--view-mode-teaser"> <a href="/products/forks-fork-extensions/weighing-fork-wgf"> <img loading="lazy" src="/sites/camattachments/files/styles/max_480x270/public/2019-04/WeighingForks.jpg?itok=ieGuIvhR" width="480" height="270" alt="Weighing fork (WGF)" class="image-style-max-480x270" /> <h2> <span class="field field--name-title field--type-string field--label-hidden">Weighing fork (WGF)</span> </h2> <div class="node__content"> </div> </a> </article> </div> <div class="views-row"> <article class="node node--type-product node--view-mode-teaser"> <a href="/products/forks-fork-extensions/forks"> <img loading="lazy" src="/sites/camattachments/files/styles/max_480x270/public/2019-02/ForksCAM.jpg?itok=jRzomt6T" width="480" height="270" alt="forks" class="image-style-max-480x270" /> <h2> <span class="field field--name-title field--type-string field--label-hidden">Forks</span> </h2> <div class="node__content"> </div> </a> </article> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--title-text paragraph--id--220 paragraph--view-mode--default width--100 align--left text-align--left"> <div class="clearfix text-formatted field field--name-field-text field--type-text-long field--label-hidden field__item"><p><span><span><span><span><span><span>Looking for top-quality forks to lift and transport items? Trust CAM attachments. With a huge range of fork types such as FEM forks, weighing forks and the newly added reach forks, they have options for lifting loads of all shapes and sizes. They offer forks to fit forklifts, telehandlers and skid-steer loaders, so there鈥檚 an option for every application. And if you need a little extra reach, check out the CAM attachments range of fork extensions. It鈥檚 a quick and easy way to lift big loads without big costs.聽</span></span></span></span></span></span></p></div> </div> </div> </div> </div> </div> </div> </div> </main> <aside class="doormat" role="contentinfo"> <img id="doormat-logo" src="/sites/camattachments/themes/custom/dropsolid-base/logo.svg" alt="Home"> <div class="container"> <div class="views-element-container block block-views block-views-blockproduct-categories-block-5" id="block-views-block-product-categories-block-5"> <span>Discover our range of attachments</span> <div><div class="column-container view view-product-categories view-id-product_categories view-display-id-block_5 js-view-dom-id-08683e170668269b6c4ab9412798046761f33c6e4a4cbbf9e752869d1360fe2e"> <div class="view-content"> <div> <ul class="clearfix menu"> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/sideshifts" hreflang="en">Sideshifts</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/fork-positioners" hreflang="en">Fork positioners</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/multi-fork-positioner" hreflang="en">Multi-fork positioner</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/rotators" hreflang="en">Rotators</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/box-rotators" hreflang="en">Box rotators</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/roll-clamps" hreflang="en">Roll clamps</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/clamps" hreflang="en">Clamps</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/bale-clamps" hreflang="en">Bale clamps</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/appliance-and-carton-clamps" hreflang="en">Appliance and carton clamps</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/concrete-block-clamps" hreflang="en">Concrete block clamps</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/push-pulls" hreflang="en">Push-pulls</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/load-extenders-stabilisers" hreflang="en">Load extenders &amp; stabilisers</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/bale-gripper" hreflang="en">Bale gripper</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/bale-spears-and-carriers" hreflang="en">Bale spears and carriers</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/carriages" hreflang="en">Carriages</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/skips" hreflang="en">Skips</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/scoops" hreflang="en">Scoops</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/loading-buckets" hreflang="en">Loading buckets</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/booms" hreflang="en">Booms</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/crane-jibs" hreflang="en">Crane jibs</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/fork-mounted-hooks" hreflang="en">Fork-mounted hooks</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/big-bag-handlers" hreflang="en">Big bag handlers</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/snow-ploughs" hreflang="en">Snow ploughs</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/yard-scrapers" hreflang="en">Yard scrapers</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/fork-mounted-drum-clamps-and-rotators" hreflang="en">Fork-mounted drum clamps and rotators</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/forklift-cages" hreflang="en">Forklift cages</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/forks-fork-extensions" hreflang="en">Forks &amp; fork extensions</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/manure-forks" hreflang="en">Manure forks</a></span></span></li> <li class="menu-item"><span class="views-field views-field-name"><span class="field-content"><a href="/products/grab-buckets" hreflang="en">Grab buckets</a></span></span></li> </ul> </div> </div> </div> </div> </div> <div id="block-doormat" class="block block-system block-system-menu-blockdoormat"> <span>Navigation</span> <ul class="clearfix menu"> <li class="menu-item"> <a href="/residual-capacity-calculator" data-drupal-link-system-path="node/5813">Residual capacity calculator</a> </li> <li class="menu-item"> <a href="/about-us" data-drupal-link-system-path="node/5811">About us</a> </li> <li class="menu-item"> <a href="/blog" data-drupal-link-system-path="node/2">Blog</a> </li> <li class="menu-item"> <a href="/user/login" data-drupal-link-system-path="user/login">Log in</a> </li> </ul> </div> <div id="block-footersociallinks" class="bundle-link view-mode-full block block-block-content block-block-contentc4ecc935-e97e-418c-a62a-cd6e1010a1bf"> <span>Follow us</span> <div class="field field--name-field-link field--type-link field--label-hidden field__items"> <div class="field__item"><a href="https://www.facebook.com/camattachments" target="_blank">Facebook</a></div> <div class="field__item"><a href="https://www.linkedin.com/company/camattachments/" target="_blank">LinkedIn</a></div> <div class="field__item"><a href="https://vimeo.com/camattachments" target="_blank">Vimeo</a></div> <div class="field__item"><a href="https://www.youtube.com/channel/UCvR13tGOcONCydb_r0IDjsQ" target="_blank">Youtube</a></div> </div> </div> </div> </aside> <footer class="footer" role="contentinfo"> <nav role="navigation" aria-labelledby="block-footer-menu" id="block-footer" class="block block-menu navigation menu--footer"> <span class="visually-hidden" id="block-footer-menu">Navigation</span> <ul class="clearfix menu"> <li class="menu-item"> <a href="/disclaimer" data-drupal-link-system-path="node/20">Disclaimer</a> </li> <li class="menu-item"> <a href="/privacy-policy" data-drupal-link-system-path="node/18">Privacy policy</a> </li> <li class="menu-item"> <a href="/terms-conditions" data-drupal-link-system-path="node/22">Terms &amp; conditions</a> </li> <li class="menu-item"> <a href="/cookie-policy" data-drupal-link-system-path="node/5817">Cookie policy</a> </li> <li class="menu-item"> <a href="/tvh-network" data-drupal-link-system-path="node/5877">Directory</a> </li> </ul> </nav> <div id="block-copyrightfooter" class="block block-copyright-footer"> &copy; 2025 </div> <div id="block-dropsolid-base-twilio" class="block block-nsa-twilio"> <div id="twilio-webchat-widget-root"></div> </div> </footer> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"taxonomy\/term\/36","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"utmTagNames":{"utm_source":"UTM Source","utm_medium":"UTM Medium","utm_campaign":"UTM Campaign","utm_content":"UTM Content","gclid":"Google Click ID"},"utmCookieName":"cam_utm","ajaxTrustedUrl":{"\/search":true},"user":{"uid":0,"permissionsHash":"2150f83acf733b7cc3d4c0dd302f7f65ab66f2b31e3195e8b6e0e022d8043614"}}</script> <script src="/sites/camattachments/files/js/optimized/js_dxIVcwvQ00owLGoUGPTfRYXU-T5rnj8Xi0cXfb3Kn58.2Pmvv0kuTBOenSvLm6bvfBSSHrUJ-3A7x6P5Ebd07_g.js?v=3.7.0"></script> <script src="/sites/camattachments/files/js/optimized/js_w0iO3No0CsyHgJmryEbhwpkh5zx6m6dhvawBt4ufwyA.HRN_m4FplP890kDvBJQuv0fEgTHDKwrMZA2zBldV1JY.js?v=1.0.1"></script> <script src="/sites/camattachments/files/js/optimized/js_Hpe5jrMuKXrV4HSTMApXJsNBxraAgcHUrTjxkwWKqy8.9H1W9OQqD9V27idEVOJMCFAQtGS4Scq-gAQciKr0U2M.js?v=10.1.6"></script> <script src="/sites/camattachments/files/js/optimized/js_V1oRQ-kJlXBZaEklOtPUe_1t8-l0RS94HJ3gsqxKikc.yMvydAoGeGX2A3FppTJejkzFSm_juSLcZ2UtTE6RP90.js?v=10.1.6"></script> <script src="/sites/camattachments/files/js/optimized/js_KRjtvzl6UujB23-j_sF6dqOcbqg2z8ej98A8RU9bGsg.kjk12BMQYgWzHTlTsh40oAfzJ1jsDD0rpt092h-M9uk.js?v=10.1.6"></script> <script src="/sites/camattachments/files/js/optimized/js_0d0qE756sP2YqnXhwTzjsZLHMmNd5BujvSVgVd8tX2g.UT_yf_knSj0Sl4WZlRbgF8zr9tfyd7AhuWnF_-sHx3o.js?v=10.1.6"></script> <script src="/sites/camattachments/files/js/optimized/js_Azs_1DxGdTvv_onGUF5AJJ9bDTJciFDhODZLvTiYdN8.aMa9udbrvyh5rqGYt-FTVUYRrjmKpr_gxlmduJs9Tts.js?v=10.1.6"></script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-b9938b7a1ebcf202765","applicationID":"941808955,773869930","transactionName":"NVcGMRdRXUNUAE1RDgwdJxAWRFxdGgZXTAgWS0oRBEhcXloOQGcVB0AJSwZRXV9bClpZDVhCFgoBRVBEagBYTAQFXRYMAEM=","queueTime":15,"applicationTime":517,"atts":"GRAFR19LTk0=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10