PageSourceSearch

https://www.arnotroberts.com/wp-content/themes/ar-111/js/min/scrollreveal-min.js?ver=4.0.5

js arnotroberts.com collected 2026-10-04 19:47:58 UTC 28,720 bytes, 360 lines download raw bytes

1/*! @license ScrollReveal v4.0.5
2
3	Copyright 2018 Fisssion LLC.
4
5	Licensed under the GNU General Public License 3.0 for
6	compatible open source projects and non-commercial use.
7
8	For commercial sites, themes, projects, and applications,
9	keep your source code private/proprietary by purchasing
10	a commercial license from https://scrollrevealjs.org/
11*/
12!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.ScrollReveal=t()}(this,function(){"use strict";function e(){return document.documentElement.classList.remove("sr"),{clean:function e(){},destroy:function e(){},reveal:function e(){},sync:function e(){},get noop(){return!0}}}function t(){document.documentElement.classList.add("sr"),document.body?document.body.style.height="100%":document.addEventListener("DOMContentLoaded",function(){document.body.style.height="100%"})}
13/*! @license is-dom-node v1.0.4
14
15	Copyright 2018 Fisssion LLC.
16
17	Permission is hereby granted, free of charge, to any person obtaining a copy
18	of this software and associated documentation files (the "Software"), to deal
19	in the Software without restriction, including without limitation the rights
20	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
21	copies of the Software, and to permit persons to whom the Software is
22	furnished to do so, subject to the following conditions:
23
24	The above copyright notice and this permission notice shall be included in all
25	copies or substantial portions of the Software.
26
27	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
32	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33	SOFTWARE.
34
35*/
36function i(e){return"object"==typeof window.Node?e instanceof window.Node:null!==e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName}
37/*! @license is-dom-node-list v1.2.1
38
39	Copyright 2018 Fisssion LLC.
40
41	Permission is hereby granted, free of charge, to any person obtaining a copy
42	of this software and associated documentation files (the "Software"), to deal
43	in the Software without restriction, including without limitation the rights
44	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
45	copies of the Software, and to permit persons to whom the Software is
46	furnished to do so, subject to the following conditions:
47
48	The above copyright notice and this permission notice shall be included in all
49	copies or substantial portions of the Software.
50
51	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
52	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
53	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
54	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
55	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
56	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
57	SOFTWARE.
58
59*/function r(e){var t=Object.prototype.toString.call(e),n=/^\[object (HTMLCollection|NodeList|Object)\]$/;return"object"==typeof window.NodeList?e instanceof window.NodeList:null!==e&&"object"==typeof e&&"number"==typeof e.length&&n.test(t)&&(0===e.length||i(e[0]))}
60/*! @license Tealight v0.3.6
61
62	Copyright 2018 Fisssion LLC.
63
64	Permission is hereby granted, free of charge, to any person obtaining a copy
65	of this software and associated documentation files (the "Software"), to deal
66	in the Software without restriction, including without limitation the rights
67	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
68	copies of the Software, and to permit persons to whom the Software is
69	furnished to do so, subject to the following conditions:
70
71	The above copyright notice and this permission notice shall be included in all
72	copies or substantial portions of the Software.
73
74	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
75	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
76	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
77	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
78	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
79	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
80	SOFTWARE.
81
82*/function d(e,t){if(void 0===t&&(t=document),e instanceof Array)return e.filter(i);if(i(e))return[e];if(r(e))return Array.prototype.slice.call(e);
vendor: 23,918 bytes, lines 82-360
82if("string"==typeof e)try{var n=t.querySelectorAll(e);return Array.prototype.slice.call(n)}catch(e){return[]}return[]}function o(e){return null!==e&&e instanceof Object&&(e.constructor===Object||"[object Object]"===Object.prototype.toString.call(e))}function s(n,i){var e;if(o(n))return Object.keys(n).forEach(function(e){return i(n[e],e,n)});if(n instanceof Array)return n.forEach(function(e,t){return i(e,t,n)});throw new TypeError("Expected either an array or object literal.")}function f(e){for(var t=[],n=arguments.length-1;0<n--;)t[n]=arguments[n+1];if(this.constructor.debug&&console){var i="%cScrollReveal: "+e;t.forEach(function(e){return i+="\n — "+e}),console.log(i,"color: #ea654b;")}}function a(){var n=this,e=function(){return{active:[],stale:[]}},i={active:[],stale:[]},t={active:[],stale:[]},r={active:[],stale:[]};
83/**
84	 * Take stock of active element IDs.
85	 */
86try{s(d("[data-sr-id]"),function(e){var t=parseInt(e.getAttribute("data-sr-id"));i.active.push(t)})}catch(e){throw e}
87/**
88	 * Destroy stale elements.
89	 */s(this.store.elements,function(e){-1===i.active.indexOf(e.id)&&i.stale.push(e.id)}),s(i.stale,function(e){return delete n.store.elements[e]}),
90/**
91	 * Take stock of active container and sequence IDs.
92	 */
93s(this.store.elements,function(e){-1===r.active.indexOf(e.containerId)&&r.active.push(e.containerId),e.hasOwnProperty("sequence")&&-1===t.active.indexOf(e.sequence.id)&&t.active.push(e.sequence.id)}),
94/**
95	 * Destroy stale containers.
96	 */
97s(this.store.containers,function(e){-1===r.active.indexOf(e.id)&&r.stale.push(e.id)}),s(r.stale,function(e){var t=n.store.containers[e].node;t.removeEventListener("scroll",n.delegate),t.removeEventListener("resize",n.delegate),delete n.store.containers[e]}),
98/**
99	 * Destroy stale sequences.
100	 */
101s(this.store.sequences,function(e){-1===t.active.indexOf(e.id)&&t.stale.push(e.id)}),s(t.stale,function(e){return delete n.store.sequences[e]})}function h(e){var i=this,r;try{s(d(e),function(e){var t=e.getAttribute("data-sr-id");if(null!==t){r=!0;var n=i.store.elements[t];n.callbackTimer&&window.clearTimeout(n.callbackTimer.clock),e.setAttribute("style",n.styles.inline.generated),e.removeAttribute("data-sr-id"),delete i.store.elements[t]}})}catch(e){return f.call(this,"Clean failed.",e.message)}if(r)try{a.call(this)}catch(e){return f.call(this,"Clean failed.",e.message)}}function c(){var n=this;
102/**
103	 * Remove all generated styles and element ids
104	 */s(this.store.elements,function(e){e.node.setAttribute("style",e.styles.inline.generated),e.node.removeAttribute("data-sr-id")}),
105/**
106	 * Remove all event listeners.
107	 */
108s(this.store.containers,function(e){var t=e.node===document.documentElement?window:e.node;t.removeEventListener("scroll",n.delegate),t.removeEventListener("resize",n.delegate)}),
109/**
110	 * Clear all data from the store
111	 */
112this.store={containers:{},elements:{},history:[],sequences:{}}}
113/*! @license Rematrix v0.3.0
114
115	Copyright 2018 Julian Lloyd.
116
117	Permission is hereby granted, free of charge, to any person obtaining a copy
118	of this software and associated documentation files (the "Software"), to deal
119	in the Software without restriction, including without limitation the rights
120	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
121	copies of the Software, and to permit persons to whom the Software is
122	furnished to do so, subject to the following conditions:
123
124	The above copyright notice and this permission notice shall be included in
125	all copies or substantial portions of the Software.
126
127	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
128	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
129	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
130	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
131	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
132	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
133	THE SOFTWARE.
134*/
135/**
136 * @module Rematrix
137 */
138/**
139 * Transformation matrices in the browser come in two flavors:
140 *
141 *  - `matrix` using 6 values (short)
142 *  - `matrix3d` using 16 values (long)
143 *
144 * This utility follows this [conversion guide](https://goo.gl/EJlUQ1)
145 * to expand short form matrices to their equivalent long form.
146 *
147 * @param  {array} source - Accepts both short and long form matrices.
148 * @return {array}
149 */function p(e){if(e.constructor!==Array)throw new TypeError("Expected array.");if(16===e.length)return e;if(6!==e.length)throw new RangeError("Expected array with either 6 or 16 values.");var t=l();return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}
150/**
151 * Returns a matrix representing no transformation. The product of any matrix
152 * multiplied by the identity matrix will be the original matrix.
153 *
154 * > **Tip:** Similar to how `5 * 1 === 5`, where `1` is the identity.
155 *
156 * @return {array}
157 */function l(){for(var e=[],t=0;t<16;t++)t%5==0?e.push(1):e.push(0);return e}
158/**
159 * Returns a 4x4 matrix describing the combined transformations
160 * of both arguments.
161 *
162 * > **Note:** Order is very important. For example, rotating 45°
163 * along the Z-axis, followed by translating 500 pixels along the
164 * Y-axis... is not the same as translating 500 pixels along the
165 * Y-axis, followed by rotating 45° along on the Z-axis.
166 *
167 * @param  {array} m - Accepts both short and long form matrices.
168 * @param  {array} x - Accepts both short and long form matrices.
169 * @return {array}
170 */function T(e,t){for(var n=p(e),i=p(t),r=[],o=0;o<4;o++)for(var s=[n[o],n[o+4],n[o+8],n[o+12]],a=0;a<4;a++){var c=4*a,l=[i[c],i[c+1],i[c+2],i[c+3]],u=s[0]*l[0]+s[1]*l[1]+s[2]*l[2]+s[3]*l[3];r[o+c]=u}return r}
171/**
172 * Attempts to return a 4x4 matrix describing the CSS transform
173 * matrix passed in, but will return the identity matrix as a
174 * fallback.
175 *
176 * > **Tip:** This method is used to convert a CSS matrix (retrieved as a
177 * `string` from computed styles) to its equivalent array format.
178 *
179 * @param  {string} source - `matrix` or `matrix3d` CSS Transform value.
180 * @return {array}
181 */function k(e){if("string"==typeof e){var t=e.match(/matrix(3d)?\(([^)]+)\)/),n;if(t)return p(t[2].split(", ").map(parseFloat))}return l()}
182/**
183 * Returns a 4x4 matrix describing X-axis rotation.
184 *
185 * @param  {number} angle - Measured in degrees.
186 * @return {array}
187 */function O(e){var t=Math.PI/180*e,n=l();return n[5]=n[10]=Math.cos(t),n[6]=n[9]=Math.sin(t),n[9]*=-1,n}
188/**
189 * Returns a 4x4 matrix describing Y-axis rotation.
190 *
191 * @param  {number} angle - Measured in degrees.
192 * @return {array}
193 */function x(e){var t=Math.PI/180*e,n=l();return n[0]=n[10]=Math.cos(t),n[2]=n[8]=Math.sin(t),n[2]*=-1,n}
194/**
195 * Returns a 4x4 matrix describing Z-axis rotation.
196 *
197 * @param  {number} angle - Measured in degrees.
198 * @return {array}
199 */function A(e){var t=Math.PI/180*e,n=l();return n[0]=n[5]=Math.cos(t),n[1]=n[4]=Math.sin(t),n[4]*=-1,n}
200/**
201 * Returns a 4x4 matrix describing 2D scaling. The first argument
202 * is used for both X and Y-axis scaling, unless an optional
203 * second argument is provided to explicitly define Y-axis scaling.
204 *
205 * @param  {number} scalar    - Decimal multiplier.
206 * @param  {number} [scalarY] - Decimal multiplier.
207 * @return {array}
208 */function R(e,t){var n=l();return n[0]=e,n[5]="number"==typeof t?t:e,n}
209/**
210 * Returns a 4x4 matrix describing X-axis translation.
211 *
212 * @param  {number} distance - Measured in pixels.
213 * @return {array}
214 */function q(e){var t=l();return t[12]=e,t}
215/**
216 * Returns a 4x4 matrix describing Y-axis translation.
217 *
218 * @param  {number} distance - Measured in pixels.
219 * @return {array}
220 */function P(e){var t=l();return t[13]=e,t}function m(e){var t=window.getComputedStyle(e.node),n=t.position,i=e.config,r={},o,s=(e.node.getAttribute("style")||"").match(/[\w-]+\s*:\s*[^;]+\s*/gi)||[];r.computed=s?s.map(function(e){return e.trim()}).join("; ")+";":"",r.generated=s.some(function(e){return e.match(/visibility\s?:\s?visible/i)})?r.computed:s.concat(["visibility: visible"]).map(function(e){return e.trim()}).join("; ")+";";
221/**
222	 * Generate opacity styles
223	 */
224var a=parseFloat(t.opacity),c=isNaN(parseFloat(i.opacity))?parseFloat(t.opacity):parseFloat(i.opacity),l={computed:a!==c?"opacity: "+a+";":"",generated:a!==c?"opacity: "+c+";":""},u=[];if(parseFloat(i.distance)){var d="top"===i.origin||"bottom"===i.origin?"Y":"X",f=i.distance;
225/**
226		 * Let’s make sure our our pixel distances are negative for top and left.
227		 * e.g. { origin: 'top', distance: '25px' } starts at `top: -25px` in CSS.
228		 */"top"!==i.origin&&"left"!==i.origin||(f=/^-/.test(f)?f.substr(1):"-"+f);var h=f.match(/(^-?\d+\.?\d?)|(em$|px$|%$)/g),p=h[0],m;switch(h[1]){case"em":f=parseInt(t.fontSize)*p;break;case"px":f=p;break;case"%":
229/**
230				 * Here we use `getBoundingClientRect` instead of
231				 * the existing data attached to `element.geometry`
232				 * because only the former includes any transformations
233				 * current applied to the element.
234				 *
235				 * If that behavior ends up being unintuitive, this
236				 * logic could instead utilize `element.geometry.height`
237				 * and `element.geoemetry.width` for the distaince calculation
238				 */
239f="Y"===d?e.node.getBoundingClientRect().height*p/100:e.node.getBoundingClientRect().width*p/100;break;default:throw new RangeError("Unrecognized or missing distance unit.")}"Y"===d?u.push(P(f)):u.push(q(f))}i.rotate.x&&u.push(O(i.rotate.x)),i.rotate.y&&u.push(x(i.rotate.y)),i.rotate.z&&u.push(A(i.rotate.z)),1!==i.scale&&(0===i.scale?
240/**
241			 * The CSS Transforms matrix interpolation specification
242			 * basically disallows transitions of non-invertible
243			 * matrixes, which means browsers won't transition
244			 * elements with zero scale.
245			 *
246			 * That’s inconvenient for the API and developer
247			 * experience, so we simply nudge their value
248			 * slightly above zero; this allows browsers
249			 * to transition our element as expected.
250			 *
251			 * `0.0002` was the smallest number
252			 * that performed across browsers.
253			 */
254u.push(R(2e-4)):u.push(R(i.scale)));var y={};if(u.length){y.property=U("transform"),
255/**
256		 * The default computed transform value should be one of:
257		 * undefined || 'none' || 'matrix()' || 'matrix3d()'
258		 */
259y.computed={raw:t[y.property],matrix:k(t[y.property])},u.unshift(y.computed.matrix);var v=u.reduce(T);y.generated={initial:y.property+": matrix3d("+v.join(", ")+");",final:y.property+": matrix3d("+y.computed.matrix.join(", ")+");"}}else y.generated={initial:"",final:""};
260/**
261	 * Generate transition styles
262	 */var g={};if(l.generated||y.generated.initial){g.property=U("transition"),g.computed=t[g.property],g.fragments=[];var b=i.delay,w=i.duration,E=i.easing;l.generated&&g.fragments.push({delayed:"opacity "+w/1e3+"s "+E+" "+b/1e3+"s",instant:"opacity "+w/1e3+"s "+E+" 0s"}),y.generated.initial&&g.fragments.push({delayed:y.property+" "+w/1e3+"s "+E+" "+b/1e3+"s",instant:y.property+" "+w/1e3+"s "+E+" 0s"})
263/**
264		 * The default computed transition property should be one of:
265		 * undefined || '' || 'all 0s ease 0s' || 'all 0s 0s cubic-bezier()'
266		 */,g.computed&&!g.computed.match(/all 0s/)&&g.fragments.unshift({delayed:g.computed,instant:g.computed});var j=g.fragments.reduce(function(e,t,n){return e.delayed+=0===n?t.delayed:", "+t.delayed,e.instant+=0===n?t.instant:", "+t.instant,e},{delayed:"",instant:""});g.generated={delayed:g.property+": "+j.delayed+";",instant:g.property+": "+j.instant+";"}}else g.generated={delayed:"",instant:""};return{inline:r,opacity:l,position:n,transform:y,transition:g}}function u(e,t){void 0===t&&(t={});var n=t.pristine||this.pristine,i="always"===e.config.useDelay||"onload"===e.config.useDelay&&n||"once"===e.config.useDelay&&!e.seen,r=e.visible&&!e.revealed,o=!e.visible&&e.revealed&&e.config.reset;return t.reveal||r?y.call(this,e,i):t.reset||o?v.call(this,e):void 0}function y(e,t){var n=[e.styles.inline.generated,e.styles.opacity.computed,e.styles.transform.generated.final];t?n.push(e.styles.transition.generated.delayed):n.push(e.styles.transition.generated.instant),e.revealed=e.seen=!0,e.node.setAttribute("style",n.filter(function(e){return""!==e}).join(" ")),g.call(this,e,t)}function v(e){var t=[e.styles.inline.generated,e.styles.opacity.generated,e.styles.transform.generated.initial,e.styles.transition.generated.instant];e.revealed=!1,e.node.setAttribute("style",t.filter(function(e){return""!==e}).join(" ")),g.call(this,e)}function g(e,t){var n=this,i=t?e.config.duration+e.config.delay:e.config.duration,r=e.revealed?e.config.beforeReveal:e.config.beforeReset,o=e.revealed?e.config.afterReveal:e.config.afterReset,s=0;e.callbackTimer&&(s=Date.now()-e.callbackTimer.start,window.clearTimeout(e.callbackTimer.clock)),r(e.node),e.callbackTimer={start:Date.now(),clock:window.setTimeout(function(){o(e.node),e.callbackTimer=null,e.revealed&&!e.config.reset&&e.config.cleanup&&h.call(n,e.node)},i-s)}}function b(e,t){
267/**
268	 * We first check if the element should reset.
269	 */
270if(void 0===t&&(t=this.pristine),!e.visible&&e.revealed&&e.config.reset)return u.call(this,e,{reset:!0});var n=this.store.sequences[e.sequence.id],i=e.sequence.index;if(n){var r=new E(n,"visible",this.store),o=new E(n,"revealed",this.store);
271/**
272		 * If the sequence has no revealed members,
273		 * then we reveal the first visible element
274		 * within that sequence.
275		 *
276		 * The sequence then cues a recursive call
277		 * in both directions.
278		 */
279if(n.models={visible:r,revealed:o},!o.body.length){var s=n.members[r.body[0]],a=this.store.elements[s];if(a)return j.call(this,n,r.body[0],-1,t),j.call(this,n,r.body[0],1,t),u.call(this,a,{reveal:!0,pristine:t})}
280/**
281		 * If our element isn’t resetting, we check the
282		 * element sequence index against the head, and
283		 * then the foot of the sequence.
284		 */if(!n.blocked.head&&i===[].concat(o.head).pop()&&i>=[].concat(r.body).shift())return j.call(this,n,i,-1,t),u.call(this,e,{reveal:!0,pristine:t});if(!n.blocked.foot&&i===[].concat(o.foot).shift()&&i<=[].concat(r.body).pop())return j.call(this,n,i,1,t),u.call(this,e,{reveal:!0,pristine:t})}}function w(e){var t=Math.abs(e);if(isNaN(t))throw new RangeError("Invalid sequence interval.");this.id=X(),this.interval=Math.max(t,16),this.members=[],this.models={},this.blocked={head:!1,foot:!1}}function E(e,i,r){var o=this;this.head=[],this.body=[],this.foot=[],s(e.members,function(e,t){var n=r.elements[e];n&&n[i]&&o.body.push(t)}),this.body.length&&s(e.members,function(e,t){var n=r.elements[e];n&&!n[i]&&(t<o.body[0]?o.head.push(t):o.foot.push(t))})}function j(e,t,n,i){var r=this,o=["head",null,"foot"][1+n],s=e.members[t+n],a=this.store.elements[s];e.blocked[o]=!0,setTimeout(function(){e.blocked[o]=!1,a&&b.call(r,a,i)},e.interval)}function L(){var n=this;a.call(this),s(this.store.elements,function(e){var t=[e.styles.inline.generated];e.visible?(t.push(e.styles.opacity.computed),t.push(e.styles.transform.generated.final),e.revealed=!0):(t.push(e.styles.opacity.generated),t.push(e.styles.transform.generated.initial),e.revealed=!1),e.node.setAttribute("style",t.filter(function(e){return""!==e}).join(" "))}),s(this.store.containers,function(e){var t=e.node===document.documentElement?window:e.node;t.addEventListener("scroll",n.delegate),t.addEventListener("resize",n.delegate)}),
285/**
286	 * Manually invoke delegate once to capture
287	 * element and container dimensions, container
288	 * scroll position, and trigger any valid reveals
289	 */
290this.delegate(),
291/**
292	 * Wipe any existing `setTimeout` now
293	 * that initialization has completed.
294	 */
295this.initTimeout=null}function M(e){return void 0===e&&(e=navigator.userAgent),/Android|iPhone|iPad|iPod/i.test(e)}function I(n){for(var e=[],t=arguments.length-1;0<t--;)e[t]=arguments[t+1];if(o(n))return s(e,function(e){s(e,function(e,t){o(e)?(n[t]&&o(n[t])||(n[t]={}),I(n[t],e)):n[t]=e})}),n;throw new TypeError("Target must be an object literal.")}function N(e,a,t){var c=this;void 0===a&&(a={}),void 0===t&&(t=!1);var l=[],u,n=a.interval||H.interval;try{n&&(u=new w(n));var i=d(e),r;if(!i.length)throw new Error("Invalid reveal target.");
296/**
297		 * Modifying the DOM via setAttribute needs to be handled
298		 * separately from reading computed styles in the map above
299		 * for the browser to batch DOM changes (limiting reflows)
300		 */
301s(i.reduce(function(e,t){var n={},i=t.getAttribute("data-sr-id");i?(I(n,c.store.elements[i]),
302/**
303				 * In order to prevent previously generated styles
304				 * from throwing off the new styles, the style tag
305				 * has to be reverted to its pre-reveal state.
306				 */
307n.node.setAttribute("style",n.styles.inline.computed)):(n.id=X(),n.node=t,n.seen=!1,n.revealed=!1,n.visible=!1);var r=I({},n.config||c.defaults,a);if(!r.mobile&&M()||!r.desktop&&!M())return i&&h.call(c,n),e;// skip elements that are disabled
308var o=d(r.container)[0],s;if(!o)throw new Error("Invalid container.");return o.contains(t)&&(null===(s=z(o,l,c.store.containers))&&(s=X(),l.push({id:s,node:o})),n.config=r,n.containerId=s,n.styles=m(n),u&&(n.sequence={id:u.id,index:u.members.length},u.members.push(n.id)),e.push(n)),e},[]),function(e){(c.store.elements[e.id]=e).node.setAttribute("data-sr-id",e.id)})}catch(e){return f.call(this,"Reveal failed.",e.message)}
309/**
310	 * Now that element set-up is complete...
311	 * Let’s commit any container and sequence data we have to the store.
312	 */s(l,function(e){c.store.containers[e.id]={id:e.id,node:e.node}}),u&&(this.store.sequences[u.id]=u)
313/**
314	 * If reveal wasn't invoked by sync, we want to
315	 * make sure to add this call to the history.
316	 */,!0!==t&&(this.store.history.push({target:e,options:a}),
317/**
318		 * Push initialization to the event queue, giving
319		 * multiple reveal calls time to be interpreted.
320		 */
321this.initTimeout&&window.clearTimeout(this.initTimeout),this.initTimeout=window.setTimeout(L.bind(this),0))}function z(t){for(var e=[],n=arguments.length-1;0<n--;)e[n]=arguments[n+1];var i=null;return s(e,function(e){s(e,function(e){null===i&&e.node===t&&(i=e.id)})}),i}
322/**
323 * Re-runs the reveal method for each record stored in history,
324 * for capturing new content asynchronously loaded into the DOM.
325 */function F(){var t=this;s(this.store.history,function(e){N.call(t,e.target,e.options,!0)}),L.call(this)}function D(e,t){for(
326/**
327	 * We want to ignore padding and scrollbars for container elements.
328	 * More information here: https://goo.gl/vOZpbz
329	 */
330var n=t?e.node.clientHeight:e.node.offsetHeight,i=t?e.node.clientWidth:e.node.offsetWidth,r=0,o=0,s=e.node;isNaN(s.offsetTop)||(r+=s.offsetTop),isNaN(s.offsetLeft)||(o+=s.offsetLeft),s=s.offsetParent;);return{bounds:{top:r,right:o+i,bottom:r+n,left:o},height:n,width:i}}function S(e){var t,n;return n=e.node===document.documentElement?(t=window.pageYOffset,window.pageXOffset):(t=e.node.scrollTop,e.node.scrollLeft),{top:t,left:n}}function C(e){void 0===e&&(e={});var t=this.store.containers[e.containerId];if(t){var n=Math.max(0,Math.min(1,e.config.viewFactor)),i=e.config.viewOffset,r=e.geometry.bounds.top+e.geometry.height*n,o=e.geometry.bounds.right-e.geometry.width*n,s=e.geometry.bounds.bottom-e.geometry.height*n,a=e.geometry.bounds.left+e.geometry.width*n,c=t.geometry.bounds.top+t.scroll.top+i.top,l=t.geometry.bounds.right+t.scroll.left-i.right,u=t.geometry.bounds.bottom+t.scroll.top-i.bottom,d=t.geometry.bounds.left+t.scroll.left+i.left;return r<u&&d<o&&c<s&&a<l||"fixed"===e.styles.position}}function W(e,t){var i=this;void 0===e&&(e={type:"init"}),void 0===t&&(t=this.store.elements),Z(function(){var n="init"===e.type||"resize"===e.type;s(i.store.containers,function(e){n&&(e.geometry=D.call(i,e,!0));var t=S.call(i,e);e.scroll&&(e.direction={x:K(t.left-e.scroll.left),y:K(t.top-e.scroll.top)}),e.scroll=t}),
331/**
332		 * Due to how the sequencer is implemented, it’s
333		 * important that we update the state of all
334		 * elements, before any animation logic is
335		 * evaluated (in the second loop below).
336		 */
337s(t,function(e){n&&(e.geometry=D.call(i,e)),e.visible=C.call(i,e)}),s(t,function(e){e.sequence?b.call(i,e):u.call(i,e)}),i.pristine=!1})}function n(){var e=document.documentElement.style;return"transform"in e||"WebkitTransform"in e}function Y(){var e=document.documentElement.style;return"transition"in e||"WebkitTransition"in e}function $(e){var t,n;if(void 0===e&&(e={}),void 0===this||Object.getPrototypeOf(this)!==$.prototype)return new $(e);if(!$.isSupported())return f.call(this,"Instantiation failed.","This browser is not supported."),B.failure();try{n=I({},oe||H,e)}catch(e){return f.call(this,"Invalid configuration.",e.message),B.failure()}try{var i;if(!d(n.container)[0])throw new Error("Invalid container.")}catch(e){return f.call(this,e.message),B.failure()}return!(oe=n).mobile&&M()||!oe.desktop&&!M()?(f.call(this,"This device is disabled.","desktop: "+oe.desktop,"mobile: "+oe.mobile),B.failure()):(B.success(),this.store={containers:{},elements:{},history:[],sequences:{}},this.pristine=!0,ee=ee||W.bind(this),te=te||c.bind(this),ne=ne||N.bind(this),ie=ie||h.bind(this),re=re||F.bind(this),Object.defineProperty(this,"delegate",{get:function(){return ee}}),Object.defineProperty(this,"destroy",{get:function(){return te}}),Object.defineProperty(this,"reveal",{get:function(){return ne}}),Object.defineProperty(this,"clean",{get:function(){return ie}}),Object.defineProperty(this,"sync",{get:function(){return re}}),Object.defineProperty(this,"defaults",{get:function(){return oe}}),Object.defineProperty(this,"version",{get:function(){return _}}),Object.defineProperty(this,"noop",{get:function(){return!1}}),ae||(ae=this))}var H={delay:0,distance:"0",duration:600,easing:"cubic-bezier(0.5, 0, 0, 1)",interval:0,opacity:0,origin:"bottom",rotate:{x:0,y:0,z:0},scale:1,cleanup:!1,container:document.documentElement,desktop:!0,mobile:!0,reset:!1,useDelay:"always",viewFactor:0,viewOffset:{top:0,right:0,bottom:0,left:0},afterReset:function e(){},afterReveal:function e(){},beforeReset:function e(){},beforeReveal:function e(){}},B={success:t,failure:e},U=function(){function e(e,t){if(void 0===t&&(t=i),e&&"string"==typeof e){if(n[e])return n[e];if("string"==typeof t[e])return n[e]=e;if("string"==typeof t["-webkit-"+e])return n[e]="-webkit-"+e;throw new RangeError('Unable to find "'+e+'" style property.')}throw new TypeError("Expected a string.")}var n={},i=document.documentElement.style;return e.clearCache=function(){return n={}},e}(),X=(G=0,function(){return G++}),G,J=function(e){return(0<e)-(e<0)||+e},K=Math.sign||J
338/*! @license miniraf v1.0.0
339
340	Copyright 2018 Fisssion LLC.
341
342	Permission is hereby granted, free of charge, to any person obtaining a copy
343	of this software and associated documentation files (the "Software"), to deal
344	in the Software without restriction, including without limitation the rights
345	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
346	copies of the Software, and to permit persons to whom the Software is
347	furnished to do so, subject to the following conditions:
348
349	The above copyright notice and this permission notice shall be included in all
350	copies or substantial portions of the Software.
351
352	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
353	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
354	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
355	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
356	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
357	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
358	SOFTWARE.
359
360*/,Q=(V=Date.now(),function(e){var t=Date.now();16<t-V?e(V=t):setTimeout(function(){return Q(e)},0)}),V,Z=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||Q,_="4.0.5",ee,te,ne,ie,re,oe,se,ae;return $.isSupported=function(){return n()&&Y()},Object.defineProperty($,"debug",{get:function(){return se||!1},set:function(e){return se="boolean"==typeof e?e:se}}),$(),$});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.