CINXE.COM

The Prefabricated Interior - 1st Edition - Deborah Schneiderman - Rout

<!doctype html> <html lang="en" class="no-js"> <head> <!-- Turnstile Clouflare header--> <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> <!-- RC10-1523: User Managed Cookies (through understanding by Development and estimation needed) --> <!-- OneTrust Cookies Consent Notice start for www.routledge.com --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="e9b64bab-f593-43cd-959a-24379a4d4a40" ></script> <script type="text/javascript"> function OptanonWrapper() { } </script> <!-- OneTrust Cookies Consent Notice end for www.routledge.com --> <!-- GSD-3467 : LCP: Preconnect Third-Party Scripts --> <link rel="dns-prefetch" href="https://www.google-analytics.com/"> <link rel="dns-prefetch" href="https://secure.ride8stir.com/"> <link rel="dns-prefetch" href="https://www.googleadservices.com/"> <link rel="dns-prefetch" href="https://cdn-cs.conductor.com/"> <link rel="dns-prefetch" href="https://www.googleads.g.doubleclick.net/"> <link rel="dns-prefetch" href="https://www.googletagmanager.com/"> <link rel="dns-prefetch" href="https://static.ads-twitter.com"> <link rel="dns-prefetch" href="https://amplify.outbrai.com/"> <link rel="dns-prefetch" href="https://px.ads.linkedin.com/"> <link rel="dns-prefetch" href="https://connect.facebook.net/"> <link rel="dns-prefetch" href="https://snap.licdn.com/"> <link rel="dns-prefetch" href="https://dc.ads.linkedin.com/"> <link rel="dns-prefetch" href="https://kit-free.fontawesome.com"> <link rel="dns-prefetch" href="https://fonts.gstatic.com"> <link rel="preconnect" href="https://www.google-analytics.com/" crossorigin> <link rel="preconnect" href="https://secure.ride8stir.com/" crossorigin> <link rel="preconnect" href="https://www.googleadservices.com/" crossorigin> <link rel="preconnect" href="https://cdn-cs.conductor.com/" crossorigin> <link rel="preconnect" href="https://www.googleads.g.doubleclick.net/" crossorigin> <link rel="preconnect" href="https://www.googletagmanager.com/" crossorigin> <link rel="preconnect" href="https://www.google-analytics.com/" crossorigin> <link rel="preconnect" href="https://amplify.outbrai.com/" crossorigin> <link rel="preconnect" href="https://px.ads.linkedin.com/" crossorigin> <link rel="preconnect" href="https://connect.facebook.net/" crossorigin> <link rel="preconnect" href="https://snap.licdn.com/" crossorigin> <link rel="preconnect" href="https://dc.ads.linkedin.com/" crossorigin> <link rel="preconnect" href="https://kit-free.fontawesome.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <script> dataLayer = []; var gtm_id = 'GTM-KW3LJ3D'; </script> <!-- GSD-979 : Google Tag Manager Implementation --> <!-- GSD-1830 : Content Square - GTM - Implement Data Layer --> <!-- Google Tag Manager --> <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_id);</script> <!-- End Google Tag Manager --> <!-- BAU-5060 : Allow GA to be loaded on Order Complete page to be used for purchase event --> <!-- BAU-10364 added the script tag to get the country code which needs to be passed to the datalayer --> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; dataLayer.push({ 'countryCode': "GB", 'countryCodebasedOnIP': "GB" }); </script> <!-- BAU-6005 : Google Tag Manager Script in wrong location --> <meta name="google-site-verification" content="WEbYPt5KipdKE58rhrkg6tHoXzteac8Rio6a6z1EDek" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"772300196",accountID:"438030",trustKey:"438030",xpid:"UAUPUVVTGwQFU1lVAgADVQ==",licenseKey:"97f8f67f26",applicationID:"757875143"};;/*! For license information please see nr-loader-spa-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(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)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);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])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={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,harvestTimeSeconds:10,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},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,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){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(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}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);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},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);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="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(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),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(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),h(e,t)})))}function h(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)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=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=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,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:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(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]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).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))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);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])}},3878:(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})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);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("")}function c(){return s(16)}function u(){return s(32)}},2614:(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}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},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})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);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})))}},8990:(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}},6389:(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})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);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:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);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 d(e,t){a()[e]=t}function l(){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()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);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)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);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];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(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,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,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 d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(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},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>s,Qu:()=>c,TZ:()=>a,ih:()=>u,tC:()=>i});var n=r(860);const i=["click","keydown","submit"],o="api",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",T="cb"+R,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);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)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();g.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,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),N=r(5603),O=r(5284);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function j(e,t={},g,R){let{init:x,info:j,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();j||(x=L.init,j=L.info,P=L.loader_config),(0,S.xN)(e.agentIdentifier,x||{}),(0,N.a)(e.agentIdentifier,P||{}),j.jsAttributes??={},d.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const H=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];I||(H.proxy.assets&&(_(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");E[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=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}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(A,e,!0,"api")})),g.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},g.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,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const _=O.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,R),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.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 x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{_[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>j()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",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"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.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=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.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"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-1vUqEfJPB8Pihje9mv5CfYgkitO1FWcS+UQb84DbXqP8oYctRv4/lzl/MzNLPlRhcY1WVDBGL20I8vm6s2VV7g==",249:"sha512-Y/BeZAh6VSTmUtUNmS5XdyKxL92s30Fyyj8xVW76HSPxcKItL4+x2+kGMZc8pMJnUpZDz1L4eftZQAJh3D8NnA==",212:"sha512-Gn2tQ3qog5Yhrx/gRutkSTYPp+7nkKFt4/mIXg99LxcNpMDAYJZDBYmAACdoHNM86+iq1F3cBcQotFNzjIX8bw=="};(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 h=(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(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.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={38:0,788: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.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#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)}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(9417);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 d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b 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,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.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((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));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(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI&&((0,T.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([$e+Ze,$e+"-done",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Je,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,$e+Ze),v(d,$e+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI&&e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.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,R.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:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:"spa"})})()})();</script> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- GSD-6549 : added Image Tag to Meta Robots for Greater Image Visibility --> <meta name="robots" content="max-image-preview:large"> <!-- BAU-10287: If metacontent is set then use robots tag --> <meta name="robots" content="index, follow"> <meta name="description" content="Though much attention has been given to the prefabrication of architecture, there has been little discussion on the influence and importance of prefabrication w" /> <title>The Prefabricated Interior - 1st Edition - Deborah Schneiderman - Rout</title> <!-- GSD-4657 Implementation-Eliminate Render Blocking Resources --> <link rel="preload" href="/js/202702.js" as="script" fetchpriority="low"> <link rel="preload" href="/js/vendor/modernizr.js?ver=1732167236" as="script" fetchpriority="low"> <link rel="preload" href="/js/bootstrap.bundle.min.js" as="script" fetchpriority="high"> <link rel="preconnect" href="https://fonts.gstatic.com" fetchpriority="high"> <link rel="preconnect" href="https://secure.ride8stir.com" fetchpriority="low"> <!-- GSD-2297 : Webeo Tracking --> <script type="text/javascript" src="/js/202702.js" ></script> <link rel="canonical" href="https://www.routledge.com/The-Prefabricated-Interior/Schneiderman/p/book/9781032502335" /> <link rel="shortcut icon" href="/favicon.ico" /> <!-- GSD-2621: Eliminate-render-blocking-resources --> <link rel="preload stylesheet" href="/css/vendor.css" as="style"> <!-- Style sheets --> <link rel="preload stylesheet" href="/css/bootstrap.min.css" as="style" onload="this.media='all';this.onload=null;" fetchpriority="high"> <link rel="preload stylesheet" href="/rsc/css/ubw.css?ver=1732169115" as="style" fetchpriority="high"> <link rel="preload stylesheet" href="/rsc/css/product-new.css?ver=1732169115" as="style" fetchpriority="high"> <!-- GSD-4799 added the css for embedded videos --> <link rel="preload stylesheet" href="/css/placeholder-loading.min.css" as="style" fetchpriority="high"> <!-- Google web fonts --> <link rel="preload stylesheet" href="//fonts.googleapis.com/css?family=Droid+Serif:400&display=swap" as="style" fetchpriority="high"> <link rel="preload stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700;800&display=swap" as="style" fetchpriority="high"> <meta name="Keyword" content="ereader" /> <meta property="fb:app_id" content="129720800446840" /> <meta property="og:site_name" content="Routledge & CRC Press" /> <meta property="og:type" content="books.book" /> <meta property="og:url" content="https://www.routledge.com/The-Prefabricated-Interior/Schneiderman/p/book/9781032502335" /> <meta property="og:image" content="https://images.routledge.com/common/jackets/crclarge/978103250/9781032502335.jpg" /> <meta property="og:description" content="Though much attention has been given to the prefabrication of architecture, there has been little discussion on the influence and importance of prefabrication within the interior environment. This book does just that, providing a comprehensive investigation into the prefab interior from the&nbsp;19th century to the present and beyond. Each chapter focuses on&nbsp;a typology of the prefabricated interior, looking at the bathroom, kitchen, workspace, furniture, mobile interiors, the prefab house, " /> <meta property="og:title" content="The Prefabricated Interior" /> <meta property="product:brand" content="Routledge" /> <!-- GSD-2539-Product Pages - FB Microdata changes --> <meta name="product_availability" property="product:availability" content="" /> <meta property="product:condition" content="new" /> <meta name="price" property="product:price:amount" content="" /> <meta property="product:price:currency" content="GBP" /> <meta property="product:retailer_item_id" content="9781032502335" /> <meta property="books:release_date" content="56834-12-01" /> <meta property="books:isbn" content="9781032502335" /> <!-- GSD-6549 : added Image Tag to Meta Robots for Greater Image Visibility --> <meta name="robots" content="max-image-preview:large"> <!--GSD-2323 Product Page Schema Update--> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "book", "name": "The Prefabricated Interior", "alternativeHeadline": "", "bookEdition": "1", "author": { "@type": "Person", "familyName": "Deborah", "givenName": "Schneiderman", "name": "Deborah Schneiderman" }, "copyrightYear": "2025", "inLanguage": "English", "publisher": "Routledge", "isbn": "9781032502335", "datePublished": "11-11-2024", "bookFormat": "http://schema.org/Paperback", "image": "https://images.routledge.com/common/jackets/crclarge/978103250/9781032502335.jpg", "url": "https://www.routledge.com/The-Prefabricated-Interior/Schneiderman/p/book/9781032502335", "numberOfPages": "236" } </script> <!--GSD-2827 Preload Largest contentful paint image--> <link rel="preload" as="image" href="https://images.routledge.com/common/jackets/crclarge/978103250/9781032502335.jpg"> <script type="text/javascript" > var userregion = "GB"; var usercurrencyname = "GBP"; var ga_account_consol = ''; var fa_url=''; fa_url='https://authors.taylorandfrancis.com/'; var page=''; page='product-new'; var gaIsbn = '9781032502335'; <!-- GSD-2303 : Send all ISBNS to validate --> var ubxisbns = ['9781040252673','9781040252703','9781032502335','1032502339','9781032502397','1032502398','9781003397540','1003397549']; var defaultBinding = ''; defaultBinding = 'PAPE'; <!-- GSD-2767 : Send COMPSITE to display in support materials section --> var compsite = ''; <!-- GSD-3077 : Pull Fully Open Access Title data from GT Classifications table and remove Full Open Access option from EE --> var openAccess = ''; <!-- RC10-26: Defining js variables in header that are to be used in product page ajax calls --> var productIsbn = '9781032502335'; var productIsbn10 = '1032502339'; var productIds = ['1044268','1044272','1293324']; var productIsbn10Array = '{"9781032502335":{"isbn10":"1032502339","bindingType":"PAPE"},"9781032502397":{"isbn10":"1032502398","bindingType":"HARD"},"9781003397540":{"isbn10":"1003397549","bindingType":"EBK"}}'; var pubDate = '11-11-2024'; var imprint = 'Routledge'; var imprintCode = 'IMPR'; var productName = 'The Prefabricated Interior'; var productImage = 'https://images.routledge.com/common/jackets/crclarge/978103250/9781032502335.jpg' var canonical = 'https://www.routledge.com/The-Prefabricated-Interior/Schneiderman/p/book/9781032502335'; var description = 'Though much attention has been given to the prefabrication of architecture, there has been little discussion on the influence and importance of prefabrication within the interior environment. This book does just that, providing a comprehensive investigation into the prefab interior from the&nbsp;19th century to the present and beyond. Each chapter focuses on&nbsp;a typology of the prefabricated interior, looking at the bathroom, kitchen, workspace, furniture, mobile interiors, the prefab house, textiles, wearables, and the digital realm of printed interiors. Taken as a group, these chapters and illustrations indicate that constructs of the interior have been pivotal in the generation of techniques and processes of prefabrication in architecture and the built environment. Chapters explore a diverse range of examples of innovative prefabricated elements and assemblages within interior environments, illustrating the inherent sustainability, accessibility, building efficiency, and affordab'; var inspectionCopyIsbn = '9781003397540'; var showInspectionCopyLink = ''; showInspectionCopyLink = '1'; var inspectionCopyType = 'EBK'; var vitalSourceIsbn = '9781003397540'; <!-- GSD-3012 : Send division in support material section --> var division = 'ARCH'; <!-- GSD 7015 defining cloudflare URL --> var cloudflare_image_worker_url = 'https://productimages.routledge.com/'; var loaderImage = '/images/ajax-spinner.gif'; var productDefaultImage = '/img/covers/image-not-available.png'; var productDefaultImageSmall = '/img/covers/default.jpeg'; var loadingImageSmall = '/img/covers/loading-image-sm.png'; </script> <script src="/js/vendor/modernizr.js?ver=1732167236"></script> <!-- GSD-2741 use vendor js file as asynch/defer --> <!-- GSD-7538 for content_pages and go we are not loading JS --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" fetchpriority="high"></script> <script src="https://cdn.jsdelivr.net/npm/select2@3.5.1/select2.min.js" defer></script> <!-- GSD-5182: Using separate library for readmore.js --> <script src="/js/readmore.min.js" defer></script> <!-- GSD-4315: Using latest Bootstrap library --> <script src="/js/bootstrap.bundle.min.js"></script> <!-- Font Awesome plus script for FA5 kit --> <!-- GSD-2621: Eliminate-render-blocking-resources --> <link rel="preload stylesheet" href="https://kit-free.fontawesome.com/releases/latest/css/free-v4-shims.min.css" as="style" media="print" onload="this.media='all';this.onload=null;"> <link rel="preload stylesheet" href="https://kit-free.fontawesome.com/releases/latest/css/free-v4-font-face.min.css" as="style" media="print" onload="this.media='all';this.onload=null;"> <link rel="preload stylesheet" href="https://kit-free.fontawesome.com/releases/latest/css/free.min.css" as="style" media="print" onload="this.media='all';this.onload=null;"> <!-- GSD-2619: Reduce JavaScript Execution Time (contentsquare js)--> <script src="/js/contentsquare/2b08024120432.js" defer></script> <!-- BAU-9494: Routledge.com (The Routledge ecommerce site): Urgent--> <script src="https://cdn.optimizely.com/js/19960974376.js" defer></script> <!-- GSD-4028: Investigate Background Images that are Contributing to Poor LCP--> <!-- Preload banner image --> <!-- GSD-4474: Preload all banner images --> <!-- GSD-4474: Preload all blog post images --> <!-- GSD-4474: Preload go page banner image --> <!-- GSD-4733: Preload Subject Category Landing Page background image --> <!-- GSD-4474: Preload footer logo --> <link rel="preload image" href="/images/routledge-logo-lg.png" as="image"> </head> <body id="up" class="product"> <!-- BAU-6005: Always keep GTM script just after the <body> tag --> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KW3LJ3D" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- BAU-4614 : Send product page view data to datalayer --> <script type="text/javascript"> dataLayer.push({ 'productId': "9781032502335", 'productName': 'The Prefabricated Interior', 'content_type': "product" }); </script> <noscript><img alt="" src="https://secure.ride8stir.com/202702.png" style="display:none" /></noscript> <!-- GSD-2969:Load sale button & sale banner with page load instead of loading through ajax--> <header id="top" class="site"> <a title="Skip to main content of page" class="skip" href="#content">Skip to main content</a> <div class="text-center website_alert"> <div class="ship py-2"><i class="fas fa-shipping-fast me-1"></i> <a href="/policies/shipping-policy">Free standard shipping on all orders</a></div> </div> <div class="container mt-0 mt-sm-2"> <div class="row"> <div class="col-3 d-lg-none bars"> <a href="javascript:void(0);" title="Toggle Menu" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <i class="fas fa-bars fa-2x"></i> </a> </div> <div class="col-6 col-lg-3 order-1 py-3 text-center rlogo"> <!-- GSD-3901:Change alt text to Routledge Home--> <a title="Links to Routledge Home Page" href="/"><img class="img-fluid m-0" width="214" height="60" src="/images/routledge-logo.png" alt="Routledge Home" /></a> </div> <div class="col-12 col-lg-6 order-3 order-lg-3 srch"> <form id="basicSrchFrm" class="position-relative" action="/search" method="GET" role="search"> <div class="input-group"> <input type="hidden" id="inputGroupSelect01" value="1"> <label for="basicSrchKwInHeader" class="hidden" id="searchInput">Search</label> <!--GSD-5961: Accessibility enhancements to basic search autocomplete --> <!--GSD-6622: Basic Search - Accessibility Issue --> <input type="text" name="kw" id="basicSrchKwInHeader" autocomplete="OFF" maxlength="125" class="form-control sch" placeholder="Search by keywords, subject, or ISBN" aria-labelledby="searchInput" aria-describedby="instructions" aria-owns="results" aria-expanded="false" aria-autocomplete="both" aria-activedescendant=""> <button type="submit" aria-label="Search" class="btn search-btn"> <i title="Search Button" class="fas fa-search fa-2x"></i> </button> </div> <section id="searchautocomplete" class="w-100 ms-0" style="display: none;"></section> <div style="display:none" id="instructions">To hear autocomplete suggestions tab past the search button after typing keywords.</div> </form> </div> <div class="col-3 order-2 order-lg-3 utilitynav"> <div class="container p-0 p-md-3"> <div class="row" id="headerlogos"> <ul class="faw-icons skeleton-loading" id="desktopNavigationMenu"> <p class="nav-icons"></p> </ul> </div> </div> </div> </div> <!-- Begin Navigation Bar --> <style> header.site .dropdown-menu.show{left:0; top:100%;} </style> <nav class="navbar navbar-expand-lg text-center" role="navigation"> <div class="collapse navbar-collapse navbarSupportedContent" id="navbarSupportedContent"> <ul class="navbar-nav mx-auto sale_alert" id="mobileNavigationMenu"> <!-- GSD-3902: Include mega menu here --> <!--GSD-3724 : AND Digital - Shop by Subject Mega Menu Design --> <li class="nav-item dropdown shop-by-subject"> <a class="nav-link dropdown-toggle" href="#" id="megamenu" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Shop By Subject </a> <div class="dropdown-menu mmenu-parent" aria-labelledby="megamenu"> <div class="container no-left-right"> <div class="mmenu"> <div class="row justify-content-end AppendMenuItems"> </div> </div> </div> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle dropdownlist" href="javascript:void();" id="navbarDropdown2" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> New & Bestselling </a> <div class="dropdown-menu drop-down-bar" aria-labelledby="navbarDropdown2"> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle dropdownlist" href="javascript:void();" id="navbarDropdown3" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Instructors & Students </a> <div class="dropdown-menu drop-down-bar" aria-labelledby="navbarDropdown3"> </div> </li> <li class="nav-item dropdown"> <a class="nav-link" href="/professionals" id="navbarDropdownd4"> Professional Practice </a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle dropdownlist" href="javascript:void();" id="navbarDropdown5" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Publish With Us </a> <div class="dropdown-menu drop-down-bar" aria-labelledby="navbarDropdown5"> </div> </li> <li class="nav-item dropdown"> <a class="nav-link" href="/sale" id="navbarDropdownd6"> <span class="sales">Sale & Offers</span> </a> </li> </ul> </div> </nav> <!-- End Navigation Bar --> </div> <!-- Styles will prevent this promotion from appearing on the home page. Would be even better if we didn't load this code on home page--> <!-- GSD-1002 : Show Latest Sale banner except homepage --> <!-- GSD-2969:Load sale button & sale banner with page load instead of loading through ajax--> <!-- GSD-3167 : Sale Event Page - Don't show the persistent banner --> <section class="promotion sale_banner"></section> </header> <main id="content" role="main" class="product"> <input type='hidden' name='productIsbn' id='productIsbn' value='9781032502335'> <section id="productBody"> <div class="container"> <div class="row"> <main id="content" role="main" class="col-12 col-xl-10 mx-xl-auto mt-3 mb-4"> <section class="row productBodySection" id="productBody"> <div class="col-md-4 col-lg-3 left-col text-center"> <div class="sidebar-item"> <div class="make-me-sticky"> <!-- GSD-4312- Add some data layer variable on Product Page --> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; var titleId; //initialize title Id var textType; //initialize text Type var rentalAvailabilty; //initialize rental Availabilty var publishingGroup; //initialize publishing Group var subjectCode; //initialize subject Code var actualPublicationDate; //initialize actualPublicationDate <!-- GSD-4417 : Datalayer Variable Addition --> var pricePoint; //initialize price </script> <!-- GSD-4312- Add some data layer variable on Product Page --> <input type="hidden" name="productType" id="productType" value="PAPE" > <script type="text/javascript"> dataLayer.push({ 'textType': "Paperback", 'titleId': "463789", 'rentalAvailabilty': "no", 'publishingGroup': "Social Science", 'subjectCode': "SCBU1060", 'actualPublicationDate': "", }); <!-- BAU-13651 : Sending custom vars to content square --> window._uxa = window._uxa || []; window._uxa.push(['setCustomVariable', '1', 'text_type', "Paperback"]); window._uxa.push(['setCustomVariable', '2', 'rental_availability', "no"]); window._uxa.push(['setCustomVariable', '3', 'publishing_group', "Social Science"]); window._uxa.push(['setCustomVariable', '4', 'subject_code', "SCBU1060"]); window._uxa.push(['setCustomVariable', '5', 'actual_pub_date', ""]); </script> <button class="datalayer_PAPE d-none" onclick="setDataLayerVariables('Paperback','463789','Social Science','SCBU1060','no','');" type="button" role="tab"></button> <!-- GSD-6588 Sale Button block--> <div class="saleButton saleButton_9781032502335 skeleton-loading"><p class="medium-size max-width-180"></p></div> <!-- GSD-6588 Image block --> <figure class="m-0 text-center"> <div class="productimg ofPAPE text-center" style=""> <a href="javascript:void(0)" class="book-preview-anchorPAPE" title="Enlarge book cover" style="cursor: auto;"> <img data-cover="9781032502335" class="img-fluid loading lazyload prev-image-btn prev-image-btnPAPE load cloudflare-product-img product-cover-img-9781032502335" data-src="https://images.routledge.com/common/jackets/crclarge/978103250/9781032502335.jpg" src="/img/covers/loading-image-sm.png" data-amazon-src-PAPE="/img/covers/loading-image-sm.png" data-binding="PAPE" data-image-default-PAPE="/img/covers/loading-image-sm.png" fetchpriority="high" onerror="loadProductImagefromCloudflareWorker(9781032502335, 'crclarge','9781032502397,9781003397540')" alt="The Prefabricated Interior book cover" /> </a> </div> </figure> <!-- GSD-4312- Add some data layer variable on Product Page --> <button class="datalayer_HARD d-none" onclick="setDataLayerVariables('Hardback','463789','Social Science','SCBU1060','no','');" type="button" role="tab"></button> <!-- GSD-6588 Sale Button block--> <div class="saleButton saleButton_9781032502397 d-none skeleton-loading"><p class="medium-size max-width-180"></p></div> <!-- GSD-6588 Image block --> <figure class="m-0 text-center"> <div class="productimg ofHARD text-center" style="display: none"> <a href="javascript:void(0)" class="book-preview-anchorHARD" title="Enlarge book cover" style="cursor: auto;"> <img data-cover="9781032502397" class="img-fluid loading lazyload prev-image-btn prev-image-btnHARD load cloudflare-product-img product-cover-img-9781032502397" data-src="https://images.routledge.com/common/jackets/crclarge/978103250/9781032502397.jpg" src="/img/covers/loading-image-sm.png" data-amazon-src-HARD="/img/covers/loading-image-sm.png" data-binding="HARD" data-image-default-HARD="/img/covers/loading-image-sm.png" fetchpriority="high" onerror="loadProductImagefromCloudflareWorker(9781032502397, 'crclarge','9781032502335,9781003397540')" alt="The Prefabricated Interior book cover" /> </a> </div> </figure> <!-- GSD-4312- Add some data layer variable on Product Page --> <button class="datalayer_EBK d-none" onclick="setDataLayerVariables('e-Book','463789','Social Science','SCBU1060','no','');" type="button" role="tab"></button> <!-- GSD-6588 Sale Button block--> <div class="saleButton saleButton_9781003397540 d-none skeleton-loading"><p class="medium-size max-width-180"></p></div> <!-- GSD-6588 Image block --> <figure class="m-0 text-center"> <div class="productimg ofEBK text-center" style="display: none"> <a href="javascript:void(0)" class="book-preview-anchorEBK" title="Enlarge book cover" style="cursor: auto;"> <img data-cover="9781003397540" class="img-fluid loading lazyload prev-image-btn prev-image-btnEBK load cloudflare-product-img product-cover-img-9781003397540" data-src="https://images.routledge.com/common/jackets/crclarge/978100339/9781003397540.jpg" src="/img/covers/loading-image-sm.png" data-amazon-src-EBK="/img/covers/loading-image-sm.png" data-binding="EBK" data-image-default-EBK="/img/covers/loading-image-sm.png" fetchpriority="high" onerror="loadProductImagefromCloudflareWorker(9781003397540, 'crclarge','9781032502335,9781032502397')" alt="The Prefabricated Interior book cover" /> </a> </div> </figure> <!-- Pre-Order Block --> <div class="pre_order"></div> <div class="preview mx-auto mt-2"> <div id="book2lookID" class="d-none"> <a href="javascript:void(0)" target="_blank" id='book2lookLink' class="btn btn-light preview-btn d-block d-md-inline-block preview-title-btn" style="display:none" data-mode ="1"> <i class="fas fa-eye me-2" aria-hidden="true"></i> <span id="previewButton"> Preview Book</span> </a> </div> <div id="googlePreviewButton" style="display: none;"> <a href="#googlePreviewContainer" data-bs-toggle="collapse" class="btn btn-light preview-btn d-block d-md-inline-block preview-title-btn" data-bs-target="#googlePreviewContainer" data-mode="1"> <i class="fas fa-eye me-2" aria-hidden="true"></i> <span>Preview Book</span> </a> </div> </div> </div> </div> </div> <div class="col-md-8 col-lg-9 center-col ps-xl-0"> <div class="row"> <div class="anchor-links mx-0 mb-3 d-none d-lg-flex" role="navigation"> <a href="javascript:void(0)" class="col btn btn-group scrollToTab" data-tabid="flush-headingThree" style="border-radius:5px 0 0 5px"><i class="fas fa-list-ul d-sm-block pe-1"></i> Table of Contents</a> <a href="javascript:void(0)" class="col btn btn-group scrollToTab" data-tabid="flush-headingTwo" style="border-radius:0"><i class="fas fa-book d-sm-block pe-1"></i> Book Description</a> <a href="javascript:void(0)" class="col btn btn-group scrollToTab flush-headingSix instructor-resources" data-tabid="flush-headingSix" style="border-radius:0 5px 5px 0;display: none;"><i class="fa fa-user-o d-sm-block pe-1"></i> Instructor Resources</a> </div> <div class="product-info"> <p class="m-0 mt-3 mt-md-0 small">1st Edition</p> <h1>The Prefabricated Interior </h1> <div class="data"> By <a title="Search for more titles by Deborah Schneiderman" href="/search?author=Deborah Schneiderman">Deborah Schneiderman</a> <span class="d-block mt-1">Copyright 2025</span> </div> </div> </div> <div class="purchase-alert ProdPagePurchaseAlerts" > <ul class="fa-ul"></ul> </div> <ul class="nav nav-tabs d-none d-lg-flex versionButtons" id="myTab" role="tablist"> <div class="skeleton-loading mr-2 w-115"> <div class="large-size btn"></div> </div> <div class="skeleton-loading mr-2 w-115"> <div class="large-size btn"></div> </div> <div class="skeleton-loading mr-2 w-115"> <div class="large-size btn"></div> </div> </ul> <div class="tab-content" id="myTabContent"> <div class="tab-pane PAPE fade show active" id="paperback" role="tabpanel" aria-labelledby="pb-tab"> <div class="row skeleton-loading"> <div class="col-12 col-lg-6 order-2 order-lg-1 shipping pt-2"> <div id="PAPE" class="bookData" data-isbn="9781032502335" data-prodid="1044268" > <div class="isbn_details isbn_details_9781032502335 "><div class="small-size"></div></div> <div> 236 Pages 126 B/W Illustrations </div> <div> <span class="publication_date publication_date_9781032502335 "><div class="small-size"></div></span> by Routledge </div> </div> <div class="ricLinks ricLinks_9781032502335"></div> <div class="shipping_details skeleton-loading"><hr><p class="large-size"></p></div> </div> <div class="col-12 col-lg-6 order-1 order-lg-2 productPrices" > <div class="skeleton-loading"> <div class="medium-size"></div> <div class="col-12 col-sm-12"> <div class="row mt-2"> <div class="col-3 col-sm-3"> <div class="medium-size"></div> </div> <div class="col-6 col-sm-6"> <div class="medium-size"></div> </div> <div class="col-3 col-sm-3"> <div class="medium-size"></div> </div> </div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> </div> </div> </div> </div> <div class="tab-pane HARD fade " id="hardback" role="tabpanel" aria-labelledby="hb-tab"> <div class="row skeleton-loading"> <div class="col-12 col-lg-6 order-2 order-lg-1 shipping pt-2"> <div id="HARD" class="bookData" data-isbn="9781032502397" data-prodid="1044272" > <div class="isbn_details isbn_details_9781032502397 d-none "><div class="small-size"></div></div> <div> 236 Pages 126 B/W Illustrations </div> <div> <span class="publication_date publication_date_9781032502397 d-none"><div class="small-size"></div></span> by Routledge </div> </div> <div class="ricLinks ricLinks_9781032502397"></div> <div class="shipping_details skeleton-loading"><hr><p class="large-size"></p></div> </div> <div class="col-12 col-lg-6 order-1 order-lg-2 productPrices" > <div class="skeleton-loading"> <div class="medium-size"></div> <div class="col-12 col-sm-12"> <div class="row mt-2"> <div class="col-3 col-sm-3"> <div class="medium-size"></div> </div> <div class="col-6 col-sm-6"> <div class="medium-size"></div> </div> <div class="col-3 col-sm-3"> <div class="medium-size"></div> </div> </div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> </div> </div> </div> </div> <div class="tab-pane EBK fade " id="ebook" role="tabpanel" aria-labelledby="eb-tab"> <div class="row skeleton-loading"> <div class="col-12 col-lg-6 order-2 order-lg-1 shipping pt-2"> <div id="EBK" class="bookData" data-isbn="9781003397540" data-prodid="1293324" > <div class="isbn_details isbn_details_9781003397540 d-none "><div class="small-size"></div></div> <div> 236 Pages 126 B/W Illustrations </div> <div> <span class="publication_date publication_date_9781003397540 d-none"><div class="small-size"></div></span> by Routledge </div> </div> <div class="ricLinks ricLinks_9781003397540"></div> <hr class="my-4" /> <div class="mb-3 d-none d-md-block"> <img src="/images/vs.png" alt="VitalSource Logo" width="100" height="22" class=" align-text-bottom" /> <a href="javascript:void(0)" class="vsModal" >Learn about VitalSource eBooks <span class="sr-only">Opens popup</span></a> </div> <div class="kindle"> <strong>Also available as eBook on:</strong> <ul class="ps-4"> <li class="amazon_link skeleton-loading"><p class="small-size"></p></li> <li class="validforubx1" id="validForUbxPAPE"> <a target="_blank" href="https://www.taylorfrancis.com/books/9781032502335" title="Opens Taylor &amp; Francis eBooks in a new window"> Taylor &amp; Francis eBooks <br /> <span class="small">(Institutional Purchase)</span><span class="sr-only">Opens in new tab or window</span></a> </li> </ul> </div> </div> <div class="col-12 col-lg-6 order-1 order-lg-2 productPrices" > <div class="skeleton-loading"> <div class="medium-size"></div> <div class="col-12 col-sm-12"> <div class="row mt-2"> <div class="col-3 col-sm-3"> <div class="medium-size"></div> </div> <div class="col-6 col-sm-6"> <div class="medium-size"></div> </div> <div class="col-3 col-sm-3"> <div class="medium-size"></div> </div> </div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> <div class="col-12 col-sm-12 mt-2"> <div class="medium-size"></div> </div> </div> </div> </div> </div> </div> <div class="col-12"> <div class="accordion accordion-flush" id="accordionFlushExample"> <div class="sticky-div book-materials"> <!-- Using this div to show the sticky add to cart button --> <!-- Description --> <div class="accordion-item" id="acc-description"> <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseTwo" aria-expanded="true" aria-controls="flush-collapseTwo"> <h2 class="accordion-header" id="flush-headingTwo">Description</h2> </button> <div id="flush-collapseTwo" class="accordion-collapse collapse show" aria-labelledby="flush-headingTwo"> <div class="accordion-body description"> <p> <P>Though much attention has been given to the prefabrication of architecture, there has been little discussion on the influence and importance of prefabrication within the interior environment.</P> <P>This book does just that, providing a comprehensive investigation into the prefab interior from the&nbsp;19th century to the present and beyond. Each chapter focuses on&nbsp;a typology of the prefabricated interior, looking at the bathroom, kitchen, workspace, furniture, mobile interiors, the prefab house, textiles, wearables, and the digital realm of printed interiors. Taken as a group, these chapters and illustrations indicate that constructs of the interior have been pivotal in the generation of techniques and processes of prefabrication in architecture and the built environment. Chapters explore a diverse range of examples of innovative prefabricated elements and assemblages within interior environments, illustrating the inherent sustainability, accessibility, building efficiency, and affordability of prefabricated design.</P> <P>The culmination of a decade of research by the leading expert on the topic, this will be the go-to resource on prefabricated interiors and an important read for all students and researchers in interior design.</P> </p> </div> </div> </div> <!-- Table of content --> <div class="accordion-item" id="acc-content"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseThree" aria-expanded="false" aria-controls="flush-collapseThree"> <h2 class="accordion-header" id="flush-headingThree">Table of Contents</h2> </button> <div id="flush-collapseThree" class="accordion-collapse collapse" aria-labelledby="flush-headingThree"> <div class="accordion-body"> <P>Introduction: Space + Place/Thing + Artifact | The Prefabricated Interior Defined&nbsp; 1. Soft Structure + Wearable Interiors&nbsp; 2. Furniture as Prefabricator&nbsp; 3. The Bathroom: Interior Prefab Prototype&nbsp; 4.&nbsp;Kitchen: Domestic Machine&nbsp; 5. Workspace: Revolution Evolution&nbsp; 6. Inside/Out: The Prefab House&nbsp;&nbsp;7. Enroute: Mass-Produced Mobile Interiors&nbsp; 8. The Digital Realm: The Evolution of Printed Interiors</P> </div> </div> </div> <!-- Authors --> <div class="accordion-item" id="acc-authors" > <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseFour" aria-expanded="false" aria-controls="flush-collapseFour"> <h2 class="accordion-header" id="flush-headingFour">Author(s)</h2> </button> <div id="flush-collapseFour" class="accordion-collapse collapse" aria-labelledby="flush-headingFour"> <div class="accordion-body"> <h3>Biography</h3> <p> <P><B>Deborah Schneiderman</B><B>, </B>RA, LEED-AP, is Professor of Interior Design at Pratt Institute and principal/founder of deSc: architecture/design/research.&nbsp;Schneiderman鈥檚 scholarship and praxis explore the emerging fabricated interior environment and its materiality. Schneiderman鈥檚 publications include multiple books, chapters in edited volumes, and journal articles. Schneiderman has exhibited work and lectured internationally for peer-reviewed conferences and invited venues, including the Storefront for Art and Architecture, The Center for Architecture, and Van Alen Institute Books. Schneiderman earned a bachelor of science in design and environmental analysis from Cornell University and MArch from the Southern California Institute of Architecture (SCI-Arc).</P> </p> <div class="featured-authors-area" style="display: none;"></div> </div> </div> </div> <!-- Critics Review --> <div class="accordion-item d-none" id="acc-instructor"></div> <div class="accordion-item d-none" id="acc-support"></div> <div class="accordion-item d-none" id="acc-delivery"></div> <div class="sticky mt-4"> <a href="#" class="btn btn-primary my-1 w-100"><i class="fas fa-shopping-cart"></i> Add to Cart</a> </div> </div> <!-- Closing div for sticky button --> </div> </div> </div> <!-- VS Modal --> <div class="modal fade" id="vsModal" tabindex="-1" aria-labelledby="vsModalLabel" style="display: none;" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="vsModalLabel">About VitalSource eBooks</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <p>VitalSource is a leading provider of eBooks.</p> <ul class="fa-ul" style="color:#10147f"> <li><span class="fa-li"><i class="fa fa-globe"></i></span> <div class="inline-block ps-2">Access your materials anywhere, at anytime.</div></li> <li><span class="fa-li"><i class="fa fa-cogs" aria-hidden="true"></i></span> <div class="inline-block ps-2">Customer preferences like text size, font type, page color and more.</div></li> <li><span class="fa-li"><i class="fa fa-list-alt" aria-hidden="true"></i></span> <div class="inline-block ps-2">Take annotations in line as you read.</div></li> </ul> </div> <div class="modal-footer justify-content-start"> <a href="https://www.routledge.com/faqs/ebooks-faqs">View VitalSource eBook FAQs &raquo;</a> </div> </div> </div> </div> <div class="distributorModal"> </div> <!-- Multiple eBooks modal --> <div class="modal fade" id="cartActionModal" tabindex="-1" style="display:none" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="cartActionModalLabel">Multiple eBook Copies</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body clearfix"> <p id="addError">This eBook is already in your shopping cart. If you would like to replace it with a different purchasing option please remove the current eBook option from your cart. </p> </div> <div class="modal-footer d-block" id="errorClose" style="display:block !important"> <div class="row my-3"> <div class="col-12 mb-2"> <a href="/cart" class="btn btn-primary mx-1 w-100">View Cart</a> </div> </div> </div> </div> </div> </div> </section> </main> <!-- Right Column on Desktop --> <aside class="col-12 col-xl-10 rt-col mx-auto"> <div class="row d-flex justify-content-end"> <div class="col-12 col-md-8 col-lg-9"> <div class="row marketing-contents"> <!-- GSD-6623: Book series data to be displayed here --> <div class="col-12 related-sub my-3"> <h4 class="ms-2">Related Subjects</h4> <div class="subjects-list"> <a aria-label="View books in Interior Design" href="/built-environment/architecture/interior-design"> <i class="fas fa-search me-1"></i>Interior Design </a> <a aria-label="View books in Structure, Materials and Detailing" href="/built-environment/architecture/structure-materials-and-detailing"> <i class="fas fa-search me-1"></i>Structure, Materials and Detailing </a> <a aria-label="View books in Sustainable Architecture" href="/built-environment/architecture/sustainable-architecture"> <i class="fas fa-search me-1"></i>Sustainable Architecture </a> <a aria-label="View books in Theory of Architecture" href="/built-environment/architecture/theory-of-architecture"> <i class="fas fa-search me-1"></i>Theory of Architecture </a> <a aria-label="View books in Building Techniques" href="/built-environment/building-and-construction/building-techniques"> <i class="fas fa-search me-1"></i>Building Techniques </a> <a aria-label="View books in Architecture" href="/built-environment/architecture"> <i class="fas fa-search me-1"></i>Architecture </a> <a aria-label="View books in Built Environment" href="/built-environment"> <i class="fas fa-search me-1"></i>Built Environment </a> <a aria-label="View books in Building and Construction" href="/built-environment/building-and-construction"> <i class="fas fa-search me-1"></i>Building and Construction </a> </div> </div> <!-- GSD-6603: Frequently Bought Together section to be mapped with related titles --> </div> </div> </div> </aside> </div> </div> </section> <!-- GSD-6588 Product page model popups --> <script type="text/javascript" src="/js/jquery.validate.min.js" defer></script> <!-- Begin Modals --> <div class="modal fade show" id="prevModal" tabindex="-1" aria-labelledby="prevModalLabel" aria-modal="true" role="dialog" data-backdrop="static" data-keyboard="false"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content mx-0 mx-sm-2"> <div class="modal-header"> <h5 class="modal-title" id="prevModalLabel">Book Preview</h5> <button type="button" class="btn-close previewclose" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="row"> <div class="col-12"> <div id="googlePreviewContainer" class="collapse"> <input type="hidden" id="googlePreviewIsbn" value=""> <div id="viewerCanvas" style="margin-bottom:1.5em; height: 660px;"></div> </div> </div> </div> </div> </div> </div> </div> <div class="modal fade show" id="imgModal" tabindex="-1" aria-hidden="true" aria-labelledby="imgModalLabel" aria-modal="true" role="dialog"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-body text-center"> <div class="float-end"> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <img class="img-fluid prev-modal-image" src="/img/covers/loading-image-sm.png" data-src="/img/covers/loading-image-sm.png"> </div> </div> </div> </div> <!-- Pre Order Notifications Popup--> <div class="modal fade" id="preOrderNotifModal" tabindex="-1" aria-labelledby="preOrderNotifModalLabel" style="display: none;" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="preOrderNotifModalLabel">Pre-Order Notification</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div id="preOrderNotiError" class="alert alert-danger" role="alert" style="display: none"> <strong>We&#39;re sorry, your request could not be processed</strong> <ul id="preOrderNotiErrorMsgs"> </ul> </div> <div id="preOrderNotiSuccess" class="alert alert-success" role="alert" style="display: none"> <p>Success! We will email you once this format of the book is available for pre-order.</p> </div> <form id="preOrderNotiForm" name="preOrderNotiForm" method="post" action="" enctype="application/x-www-form-urlencoded" novalidate="novalidate"> <input type="hidden" name="isbn" value="" id="preisbn"> <input type="hidden" name="pubdate" value="" id="prepubdate"> <input type="hidden" name="currency" value="" id="precurrency"> <input type="hidden" name="reqUrl" value="https://www.routledge.com/The-Prefabricated-Interior/Schneiderman/p/book/9781032502335" id="reqUrl"> <p>Please provide your email address so that we may notify you once this format of the book can be pre-ordered.</p> <div class="mb-2"> <label for="eml">Email Address</label> <input id="eml" name="email" class="form-control" type="text"> <div id="eml-err" class="invalid-feedback"></div> </div> <div class="my-3 text-center"> <button type="submit" class="btn btn-primary px-5">Submit</button> </div> </form> </div> </div> </div> </div> <!-- GSD-6842 Due to overriding the JS, Country drop down is not working in formstack page, here we adding the jquery for eupdates page --> <!-- GSD-7538 for content_pages or go we are loading JS --> </main> <footer> <div id="btt"> <div class="container"> <div class="row"> <div class="col-12 text-end"> <a href="#top">Back To Top <i class="fas fa-angle-up"></i></a> </div> </div> </div> </div> <div class="px-3 flex justify-content-center"> <div class="row"> <div class="col-6 col-md-12 col-xl-2 order-last order-xl-first"> <div class="row"> <div class="col-12 col-md-1 col-xl-12 rout-lo"> <img src="/images/routledge-logo-lg.png" height="324" width="215" class="img-fluid mt-3 mt-xl-5" alt="Routledge Logo" /> </div> <div class="col-12"> <p>&copy; <span id="copyrightyear"></span> <a href="https://www.informa.com" target="_blank" style="position:relative; z-index:100; text-decoration:underline; padding-bottom:15px">Informa UK Limited, an Informa Plc company</a> <div class="payoptions text-center text-sm-end p-sm-4 p-2"><h6 class="d-block d-sm-inline p-3 m-0"><i class="fas fa-lock pe-2">&nbsp;</i> Secure Shopping <span class="sr-only">Payment Options</span></h6> <ul> <li><img title="Visa" src="https://www.routledge.com/rsc/images/crclanding/visa-pay.png" class="img-fluid" alt="Visa" /></li> <li><img title="Mastercard" src="https://www.routledge.com/rsc/images/crclanding/mastercard-pay.png" class="img-fluid" alt="Master Card" /></li> <li><img title="American Express" src="https://www.routledge.com/rsc/images/crclanding/amex-pay.png" class="img-fluid" alt="American Express" /></li> <li><img title="Apple Pay" src="https://www.routledge.com/rsc/images/crclanding/apple-pay.png" class="img-fluid" alt="Apple Pay" /></li> <li><img title="Google Pay" src="https://www.routledge.com/rsc/images/crclanding/google-pay.png" class="img-fluid" alt="Google Pay" /></li> <li><img title="J C B" src="https://www.routledge.com/rsc/images/crclanding/jcb-pay.png" class="img-fluid" alt="J C B" /></li> </ul> </div></p> </div> </div> </div> <div class="col-6 col-md "> <h6>Contact Us</h6> <ul> <li> <a href=" /contacts/customer-service" >Customer Service</a> </li> <li> <a href=" /contacts/editorial" >Editorial Contacts</a> </li> <li> <a href=" /contacts/sales" >Sales Contacts</a> </li> <li> <a href=" /contacts/rights-and-permissions" >Rights and Permissions</a> </li> <li> <a href=" https://signup.cj.com/member/signup/publisher/?cid=5373372#/branded" target="blank">Become an Affiliate Partner <i title="Opens in new tab / window" class="fas fa-external-link-alt"><span class="sr-only">Opens in new tab or window</span></i></a> </li> </ul> <h6 class="mt-2"><a href="/faqs">FAQs</a></h6> <h6 class="mt-2"><a href="/partners">Partners</a></h6> </div> <div class="col-6 col-md "> <h6>Customer Resources</h6> <ul> <li> <a href=" /our-customers/authors/why-publish-with-us" >Authors</a> </li> <li> <a href=" /our-customers/booksellers" >Booksellers</a> </li> <li> <a href=" /our-customers/instructors/textbooks" >Instructors</a> </li> <li> <a href=" /our-customers/instructors/textbooks/inspection-copies" >Request An Inspection Copy</a> </li> <li> <a href=" /our-customers/librarians/resources-and-guides" >Librarians</a> </li> <li> <a href=" /our-customers/press-media" >Press and Media</a> </li> <li> <a href=" /our-customers/professionals/books-for-professionals" >Professionals</a> </li> <li> <a href=" /our-customers/societies-and-associations" >Societies & Associations</a> </li> <li> <a href=" /our-customers/students" >Students</a> </li> </ul> </div> <div class="col-6 col-md "> <h6>Our Products</h6> <ul> <li> <a href=" /our-products/ebooks" >eBooks</a> </li> <li> <a href=" /our-products/ebookplus" >eBook+</a> </li> <li> <a href=" /our-products/book-series" >Book Series</a> </li> <li> <a href=" /our-products/online-platforms" >Online Platforms</a> </li> <li> <a href=" /our-products/open-access-books/taylor-francis-oa-books" >Open Access Books</a> </li> <li> <a href=" /go/crc-press-focus-shortform" >Focus Shortform Books </a> </li> </ul> </div> <div class="col-6 col-md "> <h6>About Us</h6> <ul> <li> <a href=" /corporate/about-us" >About Routledge</a> </li> <li> <a href=" https://taylorandfrancis.com/about/" target="blank">About Taylor &amp; Francis&nbsp;<i title="Opens in new tab / window" class="fas fa-external-link-alt"><span class="sr-only">Opens in new tab or window</span></i></a> </li> <li> <a href=" https://www.tandfonline.com/" target="blank">Taylor &amp; Francis Journals&nbsp;<i title="Opens in new tab / window" class="fas fa-external-link-alt"><span class="sr-only">Opens in new tab or window</span></i></a> </li> <li> <a href=" https://taylorandfrancis.com/careers/" target="blank">Careers <i title="Opens in new tab / window" class="fas fa-external-link-alt"><span class="sr-only">Opens in new tab or window</span></i></a> </li> </ul> <h6 class="mt-3"><a href="/blog">Blog</a></h6> <h6 class="mt-2"><a href="/topics">Topics</a></h6> </div> <div class="col-6 col-md order-last order-md-5"> <h6>Policies</h6> <ul> <li> <a href=" /policies/shipping-policy" >Shipping Information</a> </li> <li> <a href=" /policies/returns-cancellations" >Returns and Cancellations</a> </li> <li> <a href=" /policies/terms-conditions" >Terms and Conditions</a> </li> <li> <a href=" /policies/inspection-copies" >Inspection Copies</a> </li> <li> <a href=" /policies/sustainability" >Sustainability</a> </li> <li> <a href=" /policies/accessibility" >Accessibility</a> </li> <li> <a href=" https://www.informa.com/privacy-policy/" target="blank">Privacy Policy <i title="Opens in new tab / window" class="fas fa-external-link-alt"><span class="sr-only">Opens in new tab or window</span></i></a> </li> </ul> <div class="mt-3 social"> <h6 class="m-0 small pb-2">SOCIAL <span class="sr-only"> NETWORKS </span></h6> <a aria-label="Facebook - Opens in new tab or window" class="facebook m-1" href="https://www.facebook.com/TaylorandFrancisGroup/" target="_blank"><i aria-hidden="true" class="fab fa-2x fa-facebook" role="img">&nbsp;</i></a> <a aria-label="LinkedIn - Opens in new tab or window" class="linkedin m-1" href="https://www.linkedin.com/company/taylor-&amp;-francis-group/" target="_blank"> <i aria-hidden="true" class="fab fa-2x fa-linkedin" role="img">&nbsp;</i></a> <a aria-label="Twitter - Opens in new tab or window" class="twitter m-1" href="https://twitter.com/routledgebooks/" target="_blank"> <i aria-hidden="true" class="fab fa-2x fa-twitter-square" role="img">&nbsp;</i></a> <a aria-label="YouTube - Opens in new tab or window" class="youtube m-1" href="https://www.youtube.com/channel/UCmG1AOBM5fskgWhCG3i8bhA" target="_blank"> <i aria-hidden="true" class="fab fa-2x fa-youtube-square" role="img">&nbsp;</i></a></div> </div> </div> </div> </footer> <input type="hidden" id="customVarsAsJsonOut" value="[]" /> <!-- GSD-4218: adding a new header js which has all header related scripts //critical--> <script src="/js/header.js?ver=1732167236"></script> <!-- GSD-2572:Setup lazy loading of images for home page --> <script src="/js/lazysizes.min.js" defer></script> <!-- GSD-2741 use vendor js file as asynch/defer - it dependent on vendor.js //critical--> <script src="/js/main.notmin.universal.js?ver=1732167236"></script> <!-- GSD-2741 use vendor js file as asynch/defer - it dependent on vendor.js //critical--> <script src="/js/product.js?ver=1732167236"></script> <!-- GSD-4799 added the scripts for embedded videos --> <!-- region change Modal --> <div class="modal fade" id="regionModal" tabindex="-1" aria-labelledby="regionModalLabel" aria-modal="true" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false"> <div class="modal-dialog modal-dialog-centered regionChangeModal"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="regionModalLabel">The country you have selected will result in the following:</h5> </div> <div class="modal-body"> <ul class="region-change-restricted-titles" id="region-change-restricted-titles"> <li>Product pricing will be adjusted to match the corresponding currency.</li> <li class="li-rst-elements">The title <span id="titles"><b>Perception</b></span> will be removed from your cart because it is not available in this region.</li> </ul> <input type="hidden" name="gregion" id="gregion"> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary" id="gregioncontinue">Continue</button> <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal" id="gregionchangecancel">Cancel</button> </div> </div> </div> </div> <script type="text/javascript" src="/js/crc-common.js?ver=1732167236"></script> <script type="text/javascript" src="/js/crc-cookie.js" defer></script> <script type="text/javascript" src="/js/jquery.blockUI.js" defer></script> <script type="application/javascript"> getUserRegion("Found"); </script> <script type="application/javascript"> isbns = ['9781040252673','9781040252703','9781032502335','1032502339','9781032502397','1032502398','9781003397540','1003397549']; </script> <script type="text/javascript" src="/js/jsapi.js" defer></script> <!-- BAU-5889-Google Preview Files are not appearing again --> <script type="text/javascript" src="/js/googlepreview.js?ver=1732167236" defer></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/gasparesganga-jquery-loading-overlay@2.1.7/dist/loadingoverlay.min.js"></script> <script type="text/javascript" src="/js/crc-pardot.js" defer></script> <script> $(document).on('click', '#iribbon-title', function () { $(this).find("#iribbon-container").toggleClass("show"); }); </script> <!-- Include all compiled plugins (below), or include individual files as needed --> <!-- GSD-1159 : Displaying additional scripts from EE --><style> header.site .navbar-expand-lg .navbar-nav li.sale {display:none} header.site a .sales {color: #CA1E47} nav.navbar ul li {border-right:1px solid #ccc} nav.navbar ul li:first-child {border-left:1px solid #ccc} .mmenu ul.sublist li {border:0} .mmenu ul.sublist li:first-child {border:0} .payoptions { background-color: #333; position: absolute; color: #fff; margin:0!important; right: 0; left: 0; text-align: right; border-top: 2px solid #000; border-bottom:2px solid #000 } .payoptions img { margin:5px; max-width:65px } .payoptions ul, .payoptions ul li { margin:0; padding:0; display:inline } </style> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"97f8f67f26","applicationID":"757875143","transactionName":"YlwDYBdSWRVXVRVZWVsWIkEWR1gLGUYTX1JAWhUbCFJeCA==","queueTime":0,"applicationTime":567,"atts":"ThsAFl9IShs=","errorBeacon":"bam.nr-data.net","agent":""}</script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e73bf0ff8d36bdb',t:'MTczMjM5MjAzNi4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>

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