CINXE.COM
Personal hygiene for pre-teens & teens | Raising Children Network
<!DOCTYPE html> <html lang="en"> <head> <!-- begin src-matrix/nested-content/head/global-design-head-site-state.html --> <script> var window = window || {}; window.sq = (function (exports) { 'use strict'; // # General Utility Functions // // ## Debug // Wrap a function or object to see the output in console. // ### Usage // ``` // const reduce = data => (debug({url: data.url})) // ``` // ### Function var debug = function (obj, trace) { if ( trace === void 0 ) trace = false; console.log(obj); if (trace) { console.trace(); } return obj; }; // Decode data from Matrix ^rawurlencode and convert apostrophe to single-quote // Alternative to using base64 for matrix data var cleanString = function (str) { return decodeURIComponent(str).replace(/'/gi, '’'); }; var cleanStringQuotes = function (str) { return str.replace(/%22/gi, '"'); }; // Base64 encoding/decoding // https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding function b64EncodeUnicode(str) { // first we use encodeURIComponent to get percent-encoded UTF-8, // then we convert the percent encodings into raw bytes which // can be fed into btoa. return btoa( encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) { return String.fromCharCode('0x' + p1); }) ); } function b64DecodeUnicode(str) { // Going backwards: from bytestream, to percent-encoding, to original string. return decodeURIComponent( atob(str) .split('') .map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }) .join('') ); } var maybeBase64Decode = function (text) { if (!text) { return ''; } try { return b64DecodeUnicode(text); } catch (e) { return text; } }; //const DIRTY = /&|<|>|"|script|iframe|=|\(|\)|\[|\]/gi; //javascript:alert var DIRTY = /data:text\/html|script|iframe|javascript:|<|>|\(|\)|\[|\]/gi; var clean = function (str) { str = str.replace(DIRTY, ' '); return str.replace(/'/gi, ''').replace(/"/gi, '"'); }; // ## Immutable Copy // Create a new version of an object var copy = function (obj) { return JSON.parse(JSON.stringify(obj)); }; var jsonEncode = function (obj, empty) { if ( empty === void 0 ) empty = {}; var result; try { result = JSON.stringify(obj); } catch (e) { var script = 'script'; if (typeof isV8 !== 'undefined') { print(("<" + script + ">console.error(" + (JSON.stringify(e)) + ")</" + script + ">")); } else { console.error(e); } result = JSON.stringify(empty); } return result; }; var jsonDecode = function (obj, empty) { if ( empty === void 0 ) empty = {}; var result = empty; try { result = JSON.parse(obj); } catch (e) { var script = 'script'; if (typeof isV8 !== 'undefined') { print(("<" + script + ">console.error(" + (JSON.stringify(e)) + ")</" + script + ">")); } else { console.error(e); } } return result; }; var convertMatrixBase64 = function (content) { return b64DecodeUnicode(content) .replace(/'/gi, ''') .replace(/\\\\\\"/gi, "'") .replace(/\\/gi, ''); }; // ## Immutable // Make a new copy of a value if it is an object and not a function var immutable = function (item) { return typeof item.target !== 'undefined' ? item // If is object and not a function then copy the object : typeof item === 'object' && typeof item !== 'function' ? copy(item) : item; }; // ## immutableAll // Create new copies of arguments and return as an array var immutableAll = function () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return args.map(immutable); }; // ## pipe // Push result through a series of functions // ### Usage // ```js // const __convert = pipe(function1, function2, function3); // const result = __convert(...args); // // function1(...args) -> function2(resultFunction1) -> function3(resultFunction2) -> resultFunction3 // ``` // // ### Function var pipe = function (fn) { var fns = [], len = arguments.length - 1; while ( len-- > 0 ) fns[ len ] = arguments[ len + 1 ]; return function () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return fns.reduce(function (acc, fn) { return fn(acc); }, fn.apply(void 0, immutableAll.apply(void 0, args))); }; }; // ## compose // Classic compose function for functional style programming. Results are piped through each function from right to left. // ### Usage // ```js // const result = compose(function3, function2, function1); // // function1(...args) -> function2(resultFunction1) -> function3(resultFunction2) -> resultFunction3 // ``` // // ### Function var compose = function () { var fns = [], len = arguments.length; while ( len-- ) fns[ len ] = arguments[ len ]; return pipe.apply(void 0, fns.reverse()); }; // ## __flatten // Flattens nested arrays into a flat array. // ### Usage // ```js // const result = __flatten([1, [2, [3, 4, [5, 6, 7]]); // // [1, 2, 3, 4, 5, 6, 7] // ``` // // ### Function var __flatten = function (out) { return function (list) { list.forEach(function (item) { if (Array.isArray(item)) { out = __flatten(out)(item); } else { out = out.concat(item); } }); return out; }; }; // ## flatten // Alias for __flatten. See __flatten for details. var flatten = function (nlist) { return __flatten([])(nlist); }; // ## generateUUID // Generates a uuid. // ### Usage // ```js // const uuid = generateUUID(); // // // ``` // // ### Function // ## r // Route helper for hyper app router event listener. // ### Usage // ```js // // When the routes '/' or '/search' is activated in window.location then call the function funnelbackRequest. // app({ // events: { // route: [ // r('/search', funnelbackRequest), // r('/', funnelbackRequest) // ], // }); // ``` // // ### Function // ## htmlDecode // Decode html entities. // ### Usage // ```js // htmlDecode('& < <'); // // "& < <" // ``` // // ### Function var htmlDecode = function (html) { var txt = document.createElement('textarea'); txt.innerHTML = html; return txt.value; }; // ## __replaceParams // Replace a param in a query string // ### Usage // ```js // // window.location.search === '?facet=blue&query=bingo+jones' // const result = __replaceParams(location.pathname + location.search)('query', 'hello+world'); // // /search?facet=blue&query=hello+world // ``` // // ### Function var __replaceParams = function (str) { return function (param, value) { var qsplit = str.split('?'); var query = qsplit[1] || ''; if (query.match(param)) { var querySplit = query.split('&'); var next = true, i = 0, final = querySplit.length; while (next) { var item = querySplit[i]; if (final === i) { next = false; } else if (item.indexOf(param) !== -1) { str = str.replace(item, (param + "=" + value)); next = false; } i++; } return str; } else { var newQstring = param + "=" + value; return query ? str + "" + (str.substr('-1') == '&' ? '' : '&') + newQstring : str + '?' + newQstring; } }; }; // ## getURLParameter // Get the value of a parameter from a query string. // ### Usage // ```js // // location.search == '?query=hello+world' // const result = getURLParameter('query', location.search); // // 'hello+world' // ``` // // ### Function function getUrlParameter(name, url) { if ( url === void 0 ) url = null; name = name .replace(/[\[]/, '\\[') .replace(/[\]]/, '\\]') .replace(/\./gi, '\\.') .replace(/\+/gi, '\\+'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(url ? url : location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); } // ## qparts // Split query param by space /** * Splits the query into words * @param query */ var qparts = function (query) { return query.split(' '); }; // ## highlight // Highlights a word 'qpart' in a string. // ### Usage // ```js // const result = highlight('juice', 'juicer'); // // <strong>juice</strong>r // ``` // // ### Function /** * Highlights a word 'qpart' in a string * @param qpart * @param str */ var __xhighlight = function (queryParts) { return function (strPart) { var keyword = queryParts.find(function (keyword) { return keyword.length > 2 && strPart.match(new RegExp(("(" + keyword + ")"), 'gi')); }); return keyword ? strPart.replace(new RegExp(("(" + keyword + ")"), 'gi'), '<strong>$1</strong>') : strPart; }; }; // ## highlightWords // Highlights all words in the query against matches in the title // ### Usage // ```js // const result = highlightWords('english', 'happy birthday english'); // // happy birthday <strong>english</strong> // ``` // // ### Function /** * Highlights all words in the query against matches in the title * @param query * @param str */ var highlightWords = function (query, str) { if (str) { var highlight = __xhighlight(qparts(query)); return qparts(str) .map(highlight) .join(' '); } else { return ''; } }; // ## slugify // Converts a string into something that can be used in a URI with no spaces and funny characters. // ### Usage // ```js // const result = slugify('hello world'); // // hello-world // ``` // // ### Function /** * @returns {string} */ var slugify = function (text) { return text .toString() .toLowerCase() .replace(/\s+/g, '-') // Replace spaces with - .replace(/[^\w\-]+/g, '') // Remove all non-word chars .replace(/\-\-+/g, '-') // Replace multiple - with single - .replace(/^-+/, '') // Trim - from start of text .replace(/-+$/, ''); // Trim - from end of text }; // ## KeyValue // Creates a key value object. // ### Usage // ```js // const result = KeyValue('query', 'hello+world'); // // result.key result.value // ``` // // ### Function var KeyValue = function KeyValue(key, value) { this.key = key; this.value = value; }; // ## objToQueryString // Converts an object to a list of KeyValue objects. // ### Usage // ```js // const result = objToQueryString({query: 'hello+world', category: 'blue'}); // // [KeyValue(hello, world), KeyValue(category, blue)] // ``` // // ### Function var objToQueryString = function (obj) { return Object.keys(obj).map(function (key) { return new KeyValue(key, obj[key]); }); }; // ## _parseQuery // Takes a string and converts to Array<KeyValue> // ### Usage // ```js // const result = _parseQuery('query=hello+world&category=blue'); // // [KeyValue(hello, world), KeyValue(category, blue)] // ``` // // ### Function var _parseQuery = function (str) { return str.split('&').map(function (qpart) { return new (Function.prototype.bind.apply( KeyValue, [ null ].concat( qpart.split('=')) )); }); }; // ## mergeQuery // Takes two queries of type Array<KeyValue> and merges them. // ### Usage // ```js // const result = mergeQuery( // objToQueryString({query: '!padrenull', cat: 'blue'}), // _parseQuery('query=hello+world') // ); // // [KeyValue(query, hello+world), KeyValue(cat, blue)] // ``` // // ### Function var mergeQuery = function (defaultQuery, query) { return defaultQuery .filter(function (param) { return !query.find(function (qparam) { return qparam.key == param.key; }); }) .concat(query); }; // ## generateQuery // Generate an Array<KeyValue> from a string and a default Array<KeyValue>. // ### Usage // ```js // const result = generateQuery('query=hello+world', [new KeyValue('query', '!padrenull')]); // // [KeyValue(query, hello+world)] // ``` // // ### Function var generateQuery = function (str, defaultQuery) { return mergeQuery(defaultQuery, _parseQuery(str)); }; // ## parseQuery // parse a query string using a default query. // ### Usage // ```js // const result = parseQuery('query=hello+world', [new KeyValue('query', '!padrenull')]); // // [KeyValue(query, hello+world)] // ``` // // ### Function var parseQuery = function (str, defaultQuery) { if ( defaultQuery === void 0 ) defaultQuery = []; return str && str.substr(0, 1) === '?' ? generateQuery(str.substr(1), defaultQuery) : str ? generateQuery(str, defaultQuery) : defaultQuery; }; var keyValuesToString = function (keyValues) { return keyValues.reduce(function (accum, item) { return (accum + "&" + (item.key) + "=" + (item.value)); }, '').substr(1); }; var keyValuesToQuery = function (keyValues) { return '?' + keyValuesToString(keyValues); }; var keyValuesToObject = function (keyValues) { var final = {}; keyValues.forEach(function (keyValue) { final[keyValue.key] = keyValue.value; }); return final; }; // ## isLocalhost // Check if is local development server var isLocalhost = function () { return location && location.hostname === 'localhost'; }; var createMarkup = function (markup) { return ({ __html: markup }); }; var reactKey = function (namespace, state, index) { return (namespace + "-" + (state.id) + "-" + index); }; var capitalize = function (string) { return string.charAt(0).toUpperCase() + string.slice(1); }; var isItems = function (items) { return Object.keys(items).length; }; var arrayFromSet = function (set) { var final = []; set.forEach(function (item) { return final.push(item); }); return final; }; var filterByKeys = function (keys, obj) { var result = {}; keys.forEach(function (key) { if (obj[key]) { result[key] = obj[key]; } }); return result; }; // # General Utility Functions for PRC // ## ageSuitability // Display age suitability range from provided months. If more than threshold, display as years. // ### Usage // ``` // const preheading = ageSuitability(state.ageMin, state.ageMax, state.ageSuitabilityDisplay); // ``` // ### Function var ageSuitabilityMock = function () { return { ageMin: '', ageMax: '', ageSuitabilityDisplay: '', divider: 12, greaterThan: 18, suffix: { months: '', years: '' } }; }; var strToNum = function (str) { return Number(str); }; var divide = function (number, divider) { return (number % divider ? strToNum((number / divider).toFixed(1)) : number / divider); }; var ageDataMock = function () { return { ageMin: '10', ageMax: '15', ageSuitabilityDisplay: '10-15' }; }; var getAge = function (ageData) { if ( ageData === void 0 ) ageData = ageDataMock(); return ({ ageMin: ageData.ageMin, ageMax: ageData.ageMax, ageSuitabilityDisplay: ageData.ageSuitabilityDisplay, divider: 12, greaterThan: 18, suffix: { months: 'months', years: 'years' } }); }; var ageSuitabilityCalculator = function (age) { if ( age === void 0 ) age = ageSuitabilityMock(); var ageMax = strToNum(age.ageMax); var ageMin = strToNum(age.ageMin); var result = { ageMin: ageMax > age.greaterThan || ageMin > age.greaterThan ? divide(ageMin, age.divider) : ageMin, ageMax: ageMax > age.greaterThan ? divide(ageMax, age.divider) : ageMax, suffix: ageMax > age.greaterThan ? age.suffix.years : age.suffix.months }; // If range, show min-max, otherwise show min+ var resultText = result.ageMax ? ((result.ageMin) + "-" + (result.ageMax) + " " + (result.suffix)) : ((result.ageMin) + "+"); var formattedText = resultText !== 'NaN+' ? resultText : ''; return age.ageSuitabilityDisplay ? age.ageSuitabilityDisplay : formattedText; }; var ageSuitability = function (ageData) { return ageSuitabilityCalculator(getAge(ageData)); }; var METHODS = ['Day', 'Date', 'FullYear', 'Hours', 'Minutes', 'Month', 'Seconds']; var DAY = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; var MONTH = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ]; var convert = function (f, k) { return (f[k] > 8 ? f[k] + 1 : ("0" + (f[k] + 1))); }; var convertTime = function (f, k) { return (f[k] > 9 ? ("" + (f[k])) : ("0" + (f[k]))); }; /** * * Creates a date object of type FriendlyDate from a date object * export type FriendlyDate = { * dayLong: string, * dayShort: string, * day: string, * monthLong: string, * monthShort: string, * month: string, * shortYear: string, * json: string, * date: number, * fullyear: number, * hours: number, * minutes: number, * month: number, * seconds: number * }; * * @example sq.friendlyDate(new Date()) * @param date */ var friendlyDate = function (date) { var final = { json: date.toJSON() }; METHODS.forEach(function (item) { final[item.toLowerCase()] = date['get' + item](); }); return Object.assign(final, { dayLong: DAY[final['day']], dayShort: DAY[final['day']].substr(0, 3), day: ("" + (final.date)), monthLong: MONTH[final['month']], monthShort: MONTH[final['month']].substr(0, 3), month: convert(final, 'month'), yearShort: ("" + (final.fullyear)).substr(2, 2), fullYear: ("" + (final.fullyear)), friendlyHours: convertTime(final, 'hours'), friendlyMinutes: convertTime(final, 'minutes') }); }; /** * Creates a date object of type FriendlyDate from a date object in string format * export type FriendlyDate = { * dayLong: string, * dayShort: string, * day: string, * monthLong: string, * monthShort: string, * month: string, * shortYear: string, * json: string, * date: number, * fullyear: number, * hours: number, * minutes: number, * month: number, * seconds: number * }; * @example * var dateVar = sq.friendlyDateFromString((new Date()).toString()) * @param date * @returns {FriendlyDate} */ var friendlyDateFromString = function (date) { return friendlyDate(new Date(Date.parse(date))); }; // this is a closure dummy var ReactRender = function (getElement) { return function (Component, props) { // how does this even work? var domContainerNode = getElement(); ///console.log(domContainerNode); var reactElement = React.createElement(Component, props); ReactDOM.render(reactElement, domContainerNode); //ReactDOM.unmountComponentAtNode(domContainerNode) }; }; var mount = function (element, Component, props) { var reactElement = React.createElement(Component, props); ReactDOM.render(reactElement, element); }; var mountNewRoot = function (element, Component, props, elType, classList) { if ( elType === void 0 ) elType = 'span'; if ( classList === void 0 ) classList = ['react-root']; var wrapper = document.createElement(elType); wrapper.id = props.state.id; try { wrapper.classList = classList; } catch(e) { wrapper.className = classList.join(' '); } // insert wrapper before el in the DOM tree element.parentNode.insertBefore(wrapper, element); element.parentNode.removeChild(element); mount(wrapper, Component, props); }; /** * * AppInstance * * Can be used to review data. Call render, and update state via actions. * @example * let appInstance = app({...}); * // call update action * appInstance = appInstance.emit('update'); * // call updateByValue action * appInstance = appInstance.emit('updateByValue', 3); * // call render * const renderResult = appInstance.render(Component, {state: appInstance.state, actions}) * @param {function} emit returns AppInstance * @param {object} state the current state * @param {function} render the passed in render function. This available for testing purposes. * @param {undefined|object} lastAction the result of the last action * @constructor */ var cleanForReact = function (str) { return str.replace(/&/gi, '&'); }; // TODO: add idAlias to all // TODO: add action.emit to all var app = function (obj) { var state = JSON.parse(cleanForReact(JSON.stringify(obj.state))); var views = obj.views; var tmp = obj._tmp || {}; obj.actions.beforeFirstRun = obj.actions.beforeFirstRun ? obj.actions.beforeFirstRun : function (state, actions) { return ({}); }; var actions = {}; var actionFn = function (action) { var params = [], len = arguments.length - 1; while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; if (!actions[action]) { console.error(("action '" + action + "' does not exist in your actions for app with id: '" + (obj.state.id) + "'")); } return out(actions[action].apply(actions, params)); }; function out(lastAction) { if ( lastAction === void 0 ) lastAction = null; return { emit: actionFn, state: copy(state), render: obj.render, lastAction: lastAction, views: obj.views }; } Object.keys(obj.actions).forEach(function (action) { var actionWrapper = function () { var ref; var params = [], len = arguments.length; while ( len-- ) params[ len ] = arguments[ len ]; var nstate = copy(state); nstate._tmp = tmp; var result = (ref = obj.actions)[action].apply(ref, [ nstate, actions ].concat( params )); if (result) { state = copy(Object.assign(state, result)); state._tmp = result._tmp ? Object.assign({}, tmp, result._tmp) : tmp; obj.render(views[state.view], { state: Object.assign({}, views, state), actions: actions }); } return result; }; actionWrapper.refName = action; actionWrapper.ref = obj.actions[action]; actions[action] = actionWrapper; }); actionFn('beforeFirstRun'); delete actions['beforeFirstRun']; return out(); }; function StateResource(stype, resource, mockResponse, reuse) { if ( reuse === void 0 ) reuse = true; this.type = stype; this.resource = resource; this.mockResponse = mockResponse; this.reuse = reuse; } var stateJson = function (resource, mockResponse) { return new StateResource('json', resource, mockResponse); }; var pass = function (data) { return data; }; /** * When there is a value of item function pass the value to fn * @param item * @param fn */ var ready = function (item, fn, wait) { if ( wait === void 0 ) wait = 4; return (item() ? fn(item()) : setTimeout(function () { return ready(item, fn); }, wait)); }; function appRequest(sq, name, stateResource, thenHandler, debug$$1) { fetch(stateResource.resource, { credentials: 'include' }) .then(function (response) { if (stateResource.mockResponse) { response = { status: stateResource.mockResponse.status, json: function () { return Promise.resolve(JSON.parse(JSON.stringify(stateResource.mockResponse.body))); } }; console.log(response); } if (response.status === 200) { if (!!location && location.search.toString().match(/dump/)) { console.log(("Response for " + name + ":")); console.log(response); } var jsonResult; try { jsonResult = response.json(); } catch (e) { return Promise.reject(e); } return jsonResult.then(function (res) { if (typeof res.info === 'object') { return Promise.reject(res); } return res; }); } else if (response.status === 304) { return Promise.reject({ aliasId: 'authStatus', action: 'authFail' }); } else { return Promise.reject({}); } }) .then(thenHandler(stateResource.resource)) .catch(function (err) { if ( err === void 0 ) err = {}; console.log('appRequest error: ', err); //tryRemoteAction(sq, err.aliasId || 'globalModalAlias', err.action || 'globalModalError'); }); } var appInstance = function ( name, domElement, viewsActionsState, stateResources, runRequest, sq, debug$$1 ) { if ( stateResources === void 0 ) stateResources = null; if ( runRequest === void 0 ) runRequest = appRequest; if ( sq === void 0 ) sq = window.sq; if ( debug$$1 === void 0 ) debug$$1 = debug$$1; //TODO: Refactor all this stuff away to lib/sq.js if (!sq) { sq = window.sq; } if (viewsActionsState.state.idAlias) { sq.aliases[viewsActionsState.state.idAlias] = name; } sq.componentViews = Object.assign({}, sq.componentViews, viewsActionsState.views); if (!sq.aliases) { sq.aliases = {}; } if (viewsActionsState.state.idAlias) { sq.aliases[viewsActionsState.state.idAlias] = name; } var newApp = function () { sq[name] = app(Object.assign({}, viewsActionsState, {render: ReactRender(function () { return domElement; })})); }; var mainThenHandler = function (response) { viewsActionsState.actions.responseHandler = viewsActionsState.actions.responseHandler || pass; if (!sq[name]) { newApp(); } sq[name].emit('responseHandler', response); }; var thenHandler = function (key) { return function (response) { sq[key] = response; mainThenHandler(response); }; }; if (domElement && !sq[name]) { // Use this stateResource Type so if multiple apps need the same resource we only call that once if (stateResources) { if (viewsActionsState.state.view === 'Loading') { sq[name] = app(Object.assign({}, viewsActionsState, {render: ReactRender(function () { return domElement; })})); } stateResources = [].concat(stateResources); stateResources.forEach(function (stateResource) { if (stateResource.type === 'json') { if ( !stateResource.reuse || (stateResource.reuse && typeof sq[stateResource.resource] === 'undefined') ) { sq[stateResource.resource] = false; runRequest(sq, name, stateResource, thenHandler, debug$$1); } else { ready(function () { return sq[stateResource.resource]; }, mainThenHandler); } } }); } else { newApp(); } } else { sq[name] = null; } }; /** * * @param state * @param actions * @param subscriber */ var subscribeHandler = function (state, actions, subscriber) { var final = { _subscribers: state._subscribers || {} }; if (typeof final._subscribers[subscriber.event] === 'undefined') { final._subscribers[subscriber.event] = []; } if ( !final._subscribers[subscriber.event].find( function (item) { return item.action === subscriber.action && item.id === subscriber.id; } ) ) { final._subscribers[subscriber.event] = final._subscribers[subscriber.event].concat(subscriber); } return final; }; var getSubscribers = function (state, event) { return state._subscribers && state._subscribers[event] ? state._subscribers[event] : []; }; var tryId = function (id) { if (typeof window.sq[id] === 'undefined') { throw ("'" + id + "' does not exist in 'window.sq[id]'. Its likely you have a typo in your id or this app instance was not successfully instantiated after 10 seconds of the page load."); } return window.sq[id]; }; var __publish = function (eventsObject) { return function (state, actions, data) { if (!state) { return eventsObject; } if (!data.event) { console.error( ("You have not specified an event for the publish action using data\n" + (JSON.stringify(data, null, 2))) ); console.trace(); } if (data.after) { var result = eventsObject[data.event](state, actions, data); getSubscribers(state, data.event).forEach(function (subscriber) { tryId(subscriber.id).emit(subscriber.action, { data: data, result: result }); }); return result; } else if (data.before) { getSubscribers(state, data.event).forEach(function (subscriber) { tryId(subscriber.id).emit(subscriber.action, { data: data }); }); return eventsObject[data.event](state, actions, data); } else { return eventsObject[data.event](state, actions, data); } }; }; var allSubscribers = function (state, event, data) { return getSubscribers(state, event).forEach(function (subscriber) { tryId(subscriber.id).emit(subscriber.action, data); }); }; var subscribe = function (id, subscriber) { setTimeout(function () { tryId(id); }, 10000); window.sq.ready(function () { return window.sq[id]; }, function (app) { return app.emit('subscribe', subscriber); }, 50); }; // Builds the event object to be merged into the actions object var events = function (eventsObject) { return ({ publish: __publish(eventsObject), subscribe: subscribeHandler }); }; var MINIMUM_TWO_PARAMETERS = "actions.emit expects a minimum of two parameters. \n1. the id or alias of the app dom element. \n2. the action of the dom element"; var missingElement = function (first) { return (first + " does not exist as an element ID in the dom or an alias.\nIts preferable to use the app event system to avoid these issues.\n"); }; var emit = function (state, actions) { var params = [], len = arguments.length - 2; while ( len-- > 0 ) params[ len ] = arguments[ len + 2 ]; if (!params.length > 1) { console.error(MINIMUM_TWO_PARAMETERS); } var first = params.shift(); var app = actions[first] || window.sq[first] || window.sq[window.sq.aliases[first]]; if (!app) { console.error(missingElement(first)); } console.log(("Calling action '" + (params[0]) + "' on app '" + first + "'")); app.emit.apply(app, params); }; var addFunctionId = function (fn, id) { fn.functionId = id; return fn; }; var addWindowAction = function (state, actions, event, actionName, fn) { if (actions[actionName] && actions[actionName].functionId !== fn.functionId) { throw ("'" + actionName + "' clashes with another name in actions"); } var win = actions.window || window; if (!actions[actionName]) { actions[actionName] = fn; } win.addEventListener(event, actions[actionName]); }; var removeWindowAction = function (state, actions, event, actionName) { var win = actions.window || window; win.removeEventListener(event, actions[actionName]); }; var addDomAction = function (state, actions, event, actionName, fn) { if (actions[actionName] && actions[actionName].functionId && actions[actionName].functionId !== fn.functionId) { throw ("'" + actionName + "' clashes with another name in actions"); } // console.log(actions); var dom = actions.document || document; if (!actions[actionName]) { actions[actionName] = fn; // console.log(actions[actionName]); // console.log(`Adding dom action '${actionName}'.`) } else { // console.log(`Dom action '${actionName}' already added.`) } dom.addEventListener(event, actions[actionName]); }; var removeDomAction = function (state, actions, event, actionName) { var dom = actions.document || document; dom.removeEventListener(event, actions[actionName]); }; var mergeEvents = function (actions) { var initEventsObject = {}; if (actions.publish) { initEventsObject = actions.publish(); } return events(Object.assign({}, initEventsObject)); }; var baseActions = function (actions) { return (Object.assign({}, {emit: emit, addDomAction: addDomAction, removeDomAction: removeDomAction, addWindowAction: addWindowAction, removeWindowAction: removeWindowAction}, actions, mergeEvents(actions))); }; exports = { state: {}, components: {}, componentViews: {}, aliases: {}, __replaceParams: __replaceParams, addFunctionId: addFunctionId, ageSuitability: ageSuitability, allSubscribers: allSubscribers, app: app, appInstance: appInstance, arrayFromSet: arrayFromSet, baseActions: baseActions, capitalize: capitalize, clean: clean, cleanString: cleanString, cleanStringQuotes: cleanStringQuotes, compose: compose, convertMatrixBase64: convertMatrixBase64, copy: copy, createMarkup: createMarkup, debug: debug, events: events, filterByKeys: filterByKeys, flatten: flatten, friendlyDate: friendlyDate, friendlyDateFromString: friendlyDateFromString, getUrlParameter: getUrlParameter, highlightWords: highlightWords, htmlDecode: htmlDecode, immutable: immutable, isItems: isItems, isLocalhost: isLocalhost, jsonDecode: jsonDecode, jsonEncode: jsonEncode, keyValuesToObject: keyValuesToObject, keyValuesToQuery: keyValuesToQuery, maybeBase64Decode: maybeBase64Decode, b64EncodeUnicode: b64EncodeUnicode, b64DecodeUnicode: b64DecodeUnicode, mount: mount, mountNewRoot: mountNewRoot, objToQueryString: objToQueryString, parseQuery: parseQuery, pipe: pipe, reactKey: reactKey, ready: ready, slugify: slugify, stateJson: stateJson, subscribe: subscribe }; return exports; }({})); </script> <script> (function(sq) { sq.state.site = {"gitFilesPath":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/m%403x.png","logoURL":"https://raisingchildren.net.au/__data/assets/file/0012/23340/logo.svg","legalName":"<p>© 2006-2024 Raising Children Network (Australia) Limited. All rights reserved.</p><p>Warning: This website and the information it contains is not intended as a substitute for professional consultation with a qualified practitioner.</p>","siteName":"Raising Children Network","homeURL":"https://raisingchildren.net.au","menu":[{"asset_assetid":"24519","asset_name":"Pregnancy and birth","asset_short_name":"Pregnancy","asset_url_path":"/pregnancy"},{"asset_assetid":"24531","asset_name":"Newborns (0-3 months)","asset_short_name":"Newborns","asset_url_path":"/newborns"},{"asset_assetid":"24515","asset_name":"Babies (3-12 months)","asset_short_name":"Babies","asset_url_path":"/babies"},{"asset_assetid":"24545","asset_name":"Toddlers (1-3 years)","asset_short_name":"Toddlers","asset_url_path":"/toddlers"},{"asset_assetid":"24553","asset_name":"Preschoolers (3-5 years)","asset_short_name":"Preschoolers","asset_url_path":"/preschoolers"},{"asset_assetid":"24557","asset_name":"School age (5-8 years)","asset_short_name":"School age","asset_url_path":"/school-age"},{"asset_assetid":"24527","asset_name":"Pre-teens (9-11 years)","asset_short_name":"Pre-teens","asset_url_path":"/pre-teens"},{"asset_assetid":"24507","asset_name":"Teens (12-18 years)","asset_short_name":"Teens","asset_url_path":"/teens"},{"asset_assetid":"24535","asset_name":"Grown-ups","asset_short_name":"Grown-ups","asset_url_path":"/grown-ups"},{"asset_assetid":"24511","asset_name":"Autism","asset_short_name":"Autism","asset_url_path":"/autism"},{"asset_assetid":"24549","asset_name":"Children with disability","asset_short_name":"Disability","asset_url_path":"/disability"},{"asset_assetid":"23224","asset_name":"About us","asset_short_name":"About us","asset_url_path":"/about-us"},{"asset_assetid":"23232","asset_name":"For professionals","asset_short_name":"For professionals","asset_url_path":"/for-professionals"},{"asset_assetid":"23240","asset_name":"Guides and tools","asset_short_name":"Guides & tools","asset_url_path":"/guides"}],"footerFlags":[{"asset_url":"https://raisingchildren.net.au/__data/assets/image/0028/98344/Aboriginal-flag-50px-height.jpg","asset_attribute_alt":"Aboriginal flag (c) WAM Clothing"},{"asset_url":"https://raisingchildren.net.au/__data/assets/image/0029/98345/TSI-flag-50px-height.jpg","asset_attribute_alt":"Torres Strait Islands flag"}],"siteAcknowledgement":"At raisingchildren.net.au we acknowledge the Traditional Custodians of the land on which we live, gather and work. We recognise their continuing connection to land, water and community. We pay respect to Elders past and present.","siteLegalName":"<p>© 2006-2024 Raising Children Network (Australia) Limited. All rights reserved.</p><p>Warning: This website and the information it contains is not intended as a substitute for professional consultation with a qualified practitioner.</p>","subscribe":{"formUrl":"https://raisingchildren.net.au/subscribe-to-our-emails","formContentId":"49761","subscribePage":"https://raisingchildren.net.au/subscribe","fields":"eyJhc3NldGlkIjoiNDk3NjEiLCJ0eXBlX2NvZGUiOiJmb3JtX2VtYWlsIiwidmVyc2lvbiI6IjAuMS4yNDgiLCJuYW1lIjoiRm9ybSBDb250ZW50cyIsInNob3J0X25hbWUiOiJGb3JtIENvbnRlbnRzIiwiZXh0ZXJuYWxfaWQiOmZhbHNlLCJzdGF0dXMiOiIxNiIsImxhbmd1YWdlcyI6ImVuIiwiY2hhcnNldCI6InV0Zi04IiwiY3JlYXRlZCI6IjIwMTgtMDktMDYgMTE6MjE6MjYiLCJjcmVhdGVkX3VzZXJpZCI6IjgwIiwidXBkYXRlZCI6IjIwMjItMDMtMTggMTQ6MjE6MDAiLCJ1cGRhdGVkX3VzZXJpZCI6IjEwODA1NCIsInB1Ymxpc2hlZCI6IjIwMTgtMDktMTEgMTA6MzU6NTIiLCJwdWJsaXNoZWRfdXNlcmlkIjoiMTMiLCJzdGF0dXNfY2hhbmdlZCI6IjIwMTgtMDktMTEgMTA6MzU6NTIiLCJzdGF0dXNfY2hhbmdlZF91c2VyaWQiOiIxMyIsInRodW1ibmFpbCI6IiIsImF0dHJpYnV0ZXMiOnsic3VibWl0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzEyIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pdCIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzQ5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlc2V0IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicXVlc3Rpb25fY29sX3dpZHRoIjp7ImF0dHJpZCI6IjE3NDQiLCJ0eXBlIjoiaHRtbF93aWR0aCIsInZhbHVlIjoiNDAlIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFuc3dlcl9jb2xfd2lkdGgiOnsiYXR0cmlkIjoiMTY5NCIsInR5cGUiOiJodG1sX3dpZHRoIiwidmFsdWUiOiI2MCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV93aWR0aCI6eyJhdHRyaWQiOiIxNzY0IiwidHlwZSI6Imh0bWxfd2lkdGgiLCJ2YWx1ZSI6IjEwMCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic29ydF9vcmRlciI6eyJhdHRyaWQiOiIxNzMzIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjp7IjAiOiI0OTc2MTpxMSIsIjEiOiI0OTc2MTpxMiIsIjIiOiI0OTc2MTpxMyIsIjMiOiI0OTc2MTpxNCIsIjQiOiI0OTc2MTpxNSIsIjUiOiI0OTc2MTpxNiIsIjYiOiI0OTc2MTpxNyIsIjciOiI0OTc2MTpxOCIsIjgiOiI0OTc2MTpxOSIsIjEwIjoiNDk3NjE6cTExIiwiMTEiOiI0OTc2MTpxMTIiLCIxMiI6IjQ5NzYxOnExMyIsIjEzIjoiNDk3NjE6cTE0IiwiMTQiOiI0OTc2MTpxMTUiLCIxNSI6IjQ5NzYxOnExNiIsIjE2IjoiNDk3NjE6cTE3IiwiMTciOiI0OTc2MTpxMTgiLCIxOCI6IjQ5NzYxOnExOSIsIjE5IjoiNDk3NjE6cTIwIn0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfYm9keWNvcHlfdW5hdHRhY2hlZCI6eyJhdHRyaWQiOiIxNzIxIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfY2xpZW50X3NpZGUiOnsiYXR0cmlkIjoiMTcyNiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibm90ZV9zaXplIjp7ImF0dHJpZCI6IjE2ODMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiODAlIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm11bHRpX3BhZ2UiOnsiYXR0cmlkIjoiMTcxNCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibmV4dF9idXR0b24iOnsiYXR0cmlkIjoiMTY4NSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJOZXh0IFBhZ2UiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwcmV2aW91c19idXR0b24iOnsiYXR0cmlkIjoiMTcwMyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJQcmV2aW91cyBQYWdlIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2F2ZV9idXR0b24iOnsiYXR0cmlkIjoiMTcwMiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzYXZlX2NvbmZpcm1hdGlvbl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MDAiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiU2F2ZSIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNvbmZpcm1hdGlvbl9wYWdlX25hbWUiOnsiYXR0cmlkIjoiMTcwOSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJDb25maXJtYXRpb24iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwYWdlX2xpc3RfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NTciLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiJXBhZ2VfbnVtYmVyJSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdWJtaXNzaW9uX3dhcm5pbmdfdGltZSI6eyJhdHRyaWQiOiIxNzIwIiwidHlwZSI6ImR1cmF0aW9uIiwidmFsdWUiOjAsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ3YXJuaW5nX2VtYWlsX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzczIiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwid2FybmluZ19lbWFpbF9mb3JtYXRfcHVibGljIjp7ImF0dHJpZCI6IjE2OTgiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJodG1sX2Zvcm1hdCI6IiIsInRleHRfZm9ybWF0IjoiIiwiaW5jX2F0dGFjaG1lbnRzIjpbXSwiYXR0YWNobWVudHMiOltdLCJhc3NldF90b19zZW5kIjoiIiwiZGVzaWduX3RvX2FwcGx5IjoiIiwibGF5b3V0X3RvX2FwcGx5IjoiIn0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX3VzZV9jb2xvdXJzIjp7ImF0dHJpZCI6IjE3MzEiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfYmdjb2xvdXIiOnsiYXR0cmlkIjoiMTcwOCIsInR5cGUiOiJjb2xvdXIiLCJ2YWx1ZSI6IiNGRkZGRkYiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV90dGYiOnsiYXR0cmlkIjoiMTY4OCIsInR5cGUiOiJhc3NldGlkIiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9mb250X3NpemUiOnsiYXR0cmlkIjoiMTc2OCIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWluX2FuZ2xlIjp7ImF0dHJpZCI6IjE3MjMiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiItMjAiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9tYXhfYW5nbGUiOnsiYXR0cmlkIjoiMTczNSIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfeF9zdGFydCI6eyJhdHRyaWQiOiIxNzE3IiwidHlwZSI6ImludCIsInZhbHVlIjoiMTAiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9taW5fZGlzdGFuY2UiOnsiYXR0cmlkIjoiMTc0MSIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjEwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWF4X2Rpc3RhbmNlIjp7ImF0dHJpZCI6IjE2OTMiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2luY2x1ZGVfbnVtYmVycyI6eyJhdHRyaWQiOiIxNzEwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwcm92aWRlX2FjY2Vzc2libGVfY2FwdGNoYSI6eyJhdHRyaWQiOiIxNzY3IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2ludmFsaWRfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzY2IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlNlY3VyaXR5IEtleSBJbmNvcnJlY3QiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2Zvcm1faW52YWxpZF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3NTQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVmFsaWQgQ0FQVENIQSBpcyByZXF1aXJlZCwgYnV0IG5vbmUgaXMgZm91bmQgaW4gdGhpcyBmb3JtIHN1Ym1pc3Npb24iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fc3BhbV9zdWJtaXNzaW9uX3RleHQiOnsiYXR0cmlkIjoiMTc0NiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJUaGlzIHN1Ym1pc3Npb24gbG9va3MgbGlrZSBhIHNwYW0uIENhbm5vdCBhY2NlcHQgdGhpcyBzdWJtaXNzaW9uLiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9pbmNvcnJlY3RfdGV4dCI6eyJhdHRyaWQiOiIxNzM3IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IkluY29ycmVjdCBzZWN1cml0eSBrZXkuIFBsZWFzZSB0cnkgYWdhaW4uIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm1vbGxvbV9jYXB0Y2hhX3JlZ2VuX2xpbmtfdGV4dCI6eyJhdHRyaWQiOiIxNjkxIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlZ2VuZXJhdGUgc2VjdXJpdHkga2V5IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9hY2Nlc3NpYmxlX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNjg3IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZXF1aXJlZF9maWVsZF9tYXJrIjp7ImF0dHJpZCI6IjE3NDIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiPGFiYnIgY2xhc3M9XCJzcS1mb3JtLXJlcXVpcmVkLWZpZWxkXCIgdGl0bGU9XCJyZXF1aXJlZFwiPio8XC9hYmJyPiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlcXVpcmVkX2ZpZWxkX25vdGUiOnsiYXR0cmlkIjoiMTc1MyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGFuIGFzdGVyaXNrICg8YWJiciBjbGFzcz1cInNxLWZvcm0tcmVxdWlyZWQtZmllbGRcIiB0aXRsZT1cInJlcXVpcmVkXCI+KjxcL2FiYnI+KS4iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MjIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19lbWFpbF9ub3RpZmljYXRpb25fZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzUiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsiaHRtbF9mb3JtYXQiOiI8cD48XC9wPiIsInRleHRfZm9ybWF0IjoiIiwidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJpbmNfYXR0YWNobWVudHMiOmZhbHNlLCJhc3NldF90b19zZW5kIjoiMCIsImRlc2lnbl90b19hcHBseSI6IjAiLCJsYXlvdXRfdG9fYXBwbHkiOiIwIiwic2VuZF9tYWlsX3RvX3R5cGUiOjAsImF0dGFjaG1lbnRzIjpbXX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiMTczMiIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6InJlZCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzE1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfaGNhcHRjaGEiOnsiYXR0cmlkIjoiNDk1MiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaGNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiNDk1MCIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6ImxpZ2h0IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhjYXB0Y2hhX3NpemUiOnsiYXR0cmlkIjoiNDk1MSIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6Im5vcm1hbCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJoY2FwdGNoYV9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjQ5NTMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhvbmV5cG90X25hbWUiOnsiYXR0cmlkIjoiMTcyOCIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaG9uZXlwb3RfaWQiOnsiYXR0cmlkIjoiMTc0NSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaG9uZXlwb3RfY2xhc3MiOnsiYXR0cmlkIjoiMTcwNSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaG9uZXlwb3RfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzM4IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNvcmRfaXBfYWRkcmVzcyI6eyJhdHRyaWQiOiI0ODM4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2VpcHRfZW1haWxzX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzc3IiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjZWlwdF9maWVsZCI6eyJhdHRyaWQiOiIxNzc4IiwidHlwZSI6ImFzc2V0aWQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzgxIiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2VsZWN0aXZlX2VtYWlscyI6eyJhdHRyaWQiOiIxNzgyIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFjdGlvbnMiOnsiYXR0cmlkIjoiMTc4MyIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W3sibmFtZSI6Ik1haWxDaGltcCBTdWJtaXNzaW9uIiwidHlwZV9jb2RlIjoiZm9ybV9hY3Rpb25fY2FsbF9yZXN0X3Jlc291cmNlIiwic2V0dGluZ3MiOnsiaHR0cF9yZXF1ZXN0IjoiYToyMzp7czo2OlwibWV0aG9kXCI7czozOlwiUFVUXCI7czoxNDpcImVuYWJsZV9odHRwXzEwXCI7YjowO3M6NDpcInVybHNcIjthOjE6e2k6MDtzOjgzOlwiaHR0cHM6XC9cL3VzMTEuYXBpLm1haWxjaGltcC5jb21cLzMuMFwvbGlzdHNcLzI5NDViOTM3N2RcL21lbWJlcnNcLyVyZXNwb25zZV80OTc2MV9xM15tZDUlXCI7fXM6NzpcInRpbWVvdXRcIjtzOjI6XCIxMFwiO3M6MTU6XCJmb2xsb3dfcmVkaXJlY3RcIjtzOjE6XCIxXCI7czoxODpcImRpc2FibGVfc3NsX3ZlcmlmeVwiO3M6MTpcIjFcIjtzOjE4OlwiZW5hYmxlX2NvbXByZXNzaW9uXCI7czoxOlwiMVwiO3M6ODpcInNzbF9jZXJ0XCI7czowOlwiXCI7czo3Olwic3NsX2tleVwiO3M6MDpcIlwiO3M6NzpcImNhX2ZpbGVcIjtzOjA6XCJcIjtzOjEzOlwiY2FjaGVfb3B0aW9uc1wiO3M6NTpcIk5FVkVSXCI7czoxOTpcImNhY2hlX3Bvc3RfcmVxdWVzdHNcIjtiOjA7czoyMDpcImRlZmF1bHRfY2FjaGVfZXhwaXJ5XCI7czoyOlwiNjBcIjtzOjE5OlwiYXV0aGVudGljYXRpb25fdHlwZVwiO3M6MTA6XCJIVFRQX0Jhc2ljXCI7czoxMjpcInJlcXVlc3RfYm9keVwiO3M6MTMzMjpcIntcImVtYWlsX2FkZHJlc3NcIjpcIiVyZXNwb25zZV80OTc2MV9xM15qc29uX2VuY29kZSVcIixcImVtYWlsX3R5cGVcIjpcImh0bWxcIixcInN0YXR1c1wiOlwicGVuZGluZ1wiLFwibWVyZ2VfZmllbGRzXCI6IHslcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCJDSElMRE5BTUUxXCJcXDpcIntyZXNwb25zZV80OTc2MV9xMTFeanNvbl9lbmNvZGV9XCIsJSVyZXNwb25zZV80OTc2MV9xNV5ub3RlbXB0eTpcIkNISUxERE9CMVwiXFw6IFwie3Jlc3BvbnNlXzQ5NzYxX3ExMl5yZXBsYWNlOi0tOl5qc29uX2VuY29kZX1cIiwlJXJlc3BvbnNlXzQ5NzYxX3E1Xm5vdGVtcHR5OlwiQ0hJTEROQU1FMlwiXFw6IFwie3Jlc3BvbnNlXzQ5NzYxX3ExM15qc29uX2VuY29kZX1cIiwlJXJlc3BvbnNlXzQ5NzYxX3E1Xm5vdGVtcHR5OlwiQ0hJTERET0IyXCJcXDogXCJ7cmVzcG9uc2VfNDk3NjFfcTE0XnJlcGxhY2U6LS06Xmpzb25fZW5jb2RlfVwiLCUlcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCJDSElMRE5BTUUzXCJcXDogXCJ7cmVzcG9uc2VfNDk3NjFfcTE1Xmpzb25fZW5jb2RlfVwiLCUlcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCJDSElMRERPQjNcIlxcOiBcIntyZXNwb25zZV80OTc2MV9xMTZecmVwbGFjZTotLTpeanNvbl9lbmNvZGV9XCIsJSVyZXNwb25zZV80OTc2MV9xNV5ub3RlbXB0eTpcIkNISUxETkFNRTRcIlxcOiBcIntyZXNwb25zZV80OTc2MV9xMTdeanNvbl9lbmNvZGV9XCIsJSVyZXNwb25zZV80OTc2MV9xNV5ub3RlbXB0eTpcIkNISUxERE9CNFwiXFw6IFwie3Jlc3BvbnNlXzQ5NzYxX3ExOF5yZXBsYWNlOi0tOl5qc29uX2VuY29kZX1cIiwlJXJlc3BvbnNlXzQ5NzYxX3E2Xm5vdGVtcHR5OlwiQkFCWURVRVwiXFw6XCJ7cmVzcG9uc2VfNDk3NjFfcTE5XnJlcGxhY2U6LS06Xmpzb25fZW5jb2RlfVwiLCVcIkZOQU1FXCI6IFwiJXJlc3BvbnNlXzQ5NzYxX3ExXmpzb25fZW5jb2RlJVwiLFwiTE5BTUVcIjogXCIlcmVzcG9uc2VfNDk3NjFfcTJeanNvbl9lbmNvZGUlXCJ9LFwiaW50ZXJlc3RzXCI6IHslcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCIwN2FiODcxMzQ2XCJcXDp7cmVzcG9uc2VfNDk3NjFfcTV9LCUlcmVzcG9uc2VfNDk3NjFfcTdebm90ZW1wdHk6XCJjZjI2YzZiZTBmXCJcXDp7cmVzcG9uc2VfNDk3NjFfcTd9LCUlcmVzcG9uc2VfNDk3NjFfcThebm90ZW1wdHk6XCI5ZmUzMzA5OTJjXCJcXDp7cmVzcG9uc2VfNDk3NjFfcTh9LCUlcmVzcG9uc2VfNDk3NjFfcTZebm90ZW1wdHk6XCI1ZDcxMTg1Yjg4XCJcXDp7cmVzcG9uc2VfNDk3NjFfcTZ9LCUlcmVzcG9uc2VfNDk3NjFfcTlebm90ZW1wdHk6XCJjZTUxZDY1YWU0XCJcXDp7cmVzcG9uc2VfNDk3NjFfcTl9LCVcIjBkYzYxYmMwMmVcIjogJXJlc3BvbnNlXzQ5NzYxX3E0XmVtcHR5OmZhbHNlJX19XCI7czoxNTpcInJlcXVlc3RfaGVhZGVyc1wiO047czoxNTpcImNvbnZlcnRfdG9fdXRmOFwiO3M6MTpcIjFcIjtzOjE1OlwiYXBwZW5kX2dldF92YXJzXCI7YjowO3M6MTc6XCJmb3J3YXJkX3VzZXJfa2V5c1wiO3M6MTpcIjFcIjtzOjE3OlwiZG9jdW1lbnRfZW5jb2RpbmdcIjtzOjQ6XCJBdXRvXCI7czoxNzpcImh0dHBfYXV0aF9vcHRpb25zXCI7YToyOntzOjg6XCJ1c2VybmFtZVwiO3M6MTpcImFcIjtzOjg6XCJwYXNzd29yZFwiO3M6NTpcIioqKioqXCI7fXM6MTE6XCJvYXV0aF9hc3NldFwiO3M6MDpcIlwiO3M6MTI6XCJvYXV0aDJfdG9rZW5cIjtzOjA6XCJcIjt9IiwidmFsaWRhdGlvbl9lbmFibGVkIjoiMSIsInZhbGlkYXRpb25fc2NvcGUiOjAsInZhbGlkYXRpb25fdGFyZ2V0IjoiMiIsInZhbGlkYXRpb25fb3BlcmF0b3IiOiIwIiwidmFsaWRhdGlvbl92YWx1ZSI6Il5cXHMrJCIsInZhbGlkYXRpb25fZXJyb3JfdGV4dCI6IiVnbG9iYWxzX3Nlc3Npb25fbWFpbGNoaW1wX2Vycm9yJSIsInZhbGlkYXRpb25fa3dfcmVwbGFjZW1lbnQiOiIlZ2xvYmFsc19zZXNzaW9uX21haWxjaGltcF9lcnJvciUiLCJqc19zZXNzaW9uX3ZhciI6Im1haWxjaGltcF9lcnJvciIsImpzX3JlcGxhY2Vfa2V5d29yZHMiOiIwIiwianNfZW5naW5lIjoidjgiLCJqc19jb2RlIjoiaWYgKF9SRVNULnJlc3BvbnNlLmluZm8uaHR0cF9jb2RlPjI5OSl7XHJcbiAgICByZXNwb25zZUJvZHk9SlNPTi5wYXJzZShfUkVTVC5yZXNwb25zZS5ib2R5KTtcclxuICAgIHByaW50KHJlc3BvbnNlQm9keSk7XHJcbn0gZWxzZSB7XHJcbiAgICBwcmludChcIiBcIik7XHJcbn0iLCJqc19pbmNsdWRlX2ZpbGVzIjpbXSwicHJvY2Vzc19rZXl3b3Jkc19qYXZhc2NyaXB0X2ZpbGVzIjpbXSwiYmVmb3JlX2NyZWF0ZSI6dHJ1ZX0sImFjdGl2ZSI6dHJ1ZX1dLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibG9nIjp7ImF0dHJpZCI6IjE3ODQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2VpcHRfZW1haWxfYXR0YWNobWVudHMiOnsiYXR0cmlkIjoiMTc4NSIsInR5cGUiOiJkeW5hbWljX2ZpbGUiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNpcGllbnRfZW1haWxfYXR0YWNobWVudHMiOnsiYXR0cmlkIjoiMTc4NiIsInR5cGUiOiJkeW5hbWljX2ZpbGUiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2VtYWlsX2F0dGFjaG1lbnRzIjp7ImF0dHJpZCI6IjE3ODciLCJ0eXBlIjoiZHluYW1pY19maWxlIiwidmFsdWUiOltdLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibmV4dF9xdWVzdGlvbmlkIjp7ImF0dHJpZCI6IjE3MjUiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJxdWVzdGlvbnMiOnsiYXR0cmlkIjoiMTc3MSIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6eyIxIjp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiRmlyc3QgTmFtZSIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJleHRyYSI6InBhbmVsSW5wdXRzIn19LCIyIjp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiTGFzdCBOYW1lIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImV4dHJhIjoicGFuZWxJbnB1dHMifX0sIjMiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2VtYWlsX2FkZHJlc3MiLCJhdHRyaWJ1dGVzIjp7InRleHRfdHlwZSI6ImVtYWlsIiwiaXNfcmVxdWlyZWQiOnRydWUsImV4dHJhIjoicGFuZWxJbnB1dHMiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IlBsZWFzZSBhZGQgYW4gZW1haWwgYWRkcmVzcyIsIm5hbWUiOiJFbWFpbCJ9fSwiNCI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfc2VsZWN0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiU3VydmV5IE9wdC1pbiIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJub3RlIjoiSSBhZ3JlZSB0byBiZSBjb250YWN0ZWQgYWJvdXQgc3VydmV5cy4iLCJkZWZhdWx0IjpbImZhbHNlIl0sImV4dHJhIjoib3B0aW4iLCJvcHRpb25zIjp7InRydWUiOiJ0cnVlIn0sImFsbG93X2VtcHR5Ijp0cnVlLCJlbXB0eV9rZXkiOiJmYWxzZSIsImVtcHR5X3RleHQiOiJmYWxzZSJ9fSwiNSI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfc2VsZWN0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiR3JvdyB3aXRoIFVzIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImRlZmF1bHQiOlsiIl0sIm9wdGlvbnMiOnsidHJ1ZSI6InRydWUifSwiYWxsb3dfZW1wdHkiOnRydWUsImVtcHR5X3RleHQiOiJmYWxzZSJ9fSwiNiI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfc2VsZWN0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiUHJlZ25hbmN5IiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImRlZmF1bHQiOlsiIl0sImV4dHJhIjoicHJlZ25hbmN5Iiwib3B0aW9ucyI6eyJ0cnVlIjoidHJ1ZSJ9LCJhbGxvd19lbXB0eSI6dHJ1ZSwiZW1wdHlfa2V5IjoiZmFsc2UiLCJlbXB0eV90ZXh0IjoiZmFsc2UifX0sIjciOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IlBhcmVudGluZyAwLTgiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiZGVmYXVsdCI6WyIiXSwiZXh0cmEiOiJwYXJlbnRpbmdfMF84Iiwib3B0aW9ucyI6eyJ0cnVlIjoidHJ1ZSJ9LCJhbGxvd19lbXB0eSI6dHJ1ZSwiZW1wdHlfa2V5IjoiZmFsc2UiLCJlbXB0eV90ZXh0IjoiZmFsc2UifX0sIjgiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IlBhcmVudGluZyB0ZWVucyIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJkZWZhdWx0IjpbIiJdLCJleHRyYSI6InBhcmVudGluZ190ZWVucyIsIm9wdGlvbnMiOnsidHJ1ZSI6InRydWUifSwiYWxsb3dfZW1wdHkiOnRydWUsImVtcHR5X2tleSI6ImZhbHNlIiwiZW1wdHlfdGV4dCI6ImZhbHNlIn19LCI5Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV9zZWxlY3QiLCJhdHRyaWJ1dGVzIjp7Im5hbWUiOiJQcm9mZXNzaW9uYWxzIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImRlZmF1bHQiOlsiIl0sImV4dHJhIjoicHJvZmVzc2lvbmFscyIsIm9wdGlvbnMiOnsidHJ1ZSI6InRydWUifSwiYWxsb3dfZW1wdHkiOnRydWUsImVtcHR5X2tleSI6ImZhbHNlIiwiZW1wdHlfdGV4dCI6ImZhbHNlIn19LCIxMSI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IllvdXIgY2hpbGRcdTIwMTlzIGZpcnN0IG5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19pbnB1dF8xIiwiZXh0cmEiOiJncm93X3dpdGhfdXNfaW5wdXRfMSIsInBsYWNlaG9sZGVyIjoiRW50ZXIgZmlyc3QgbmFtZSJ9fSwiMTIiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2RhdGV0aW1lIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiWW91ciBjaGlsZFx1MjAxOXMgZGF0ZSBvZiBiaXJ0aCIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJub3RlIjoiZ3Jvd193aXRoX3VzX2RhdGFfcGlja2VyXzEiLCJjdXN0X3JlcXVpcmVkX2Vycm9yIjoiU29ycnksIHRoZSBkYXRlIHlvdSBlbnRlcmVkIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gIiwic2hvdyI6eyJkIjoiMSIsIm0iOiIxIiwieSI6IjEiLCJoIjoiIiwiaSI6IiIsInMiOiIiLCJjIjoiIiwiYSI6IiJ9LCJudWxsIjp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiJ9LCJ0ZXh0Ijp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiJ9LCJwcmludF9mb3JtYXQiOiJZLW0tZCIsImV4dHJhcyI6eyJkIjoiIiwibSI6IiIsInkiOiIiLCJoIjoiIiwiaSI6IiIsInMiOiIiLCJhIjoiIn0sInVzZV9qcyI6ZmFsc2UsImN1cnJlbnRfZGF0ZSI6eyJtaW5pbXVtIjowLCJtYXhpbXVtIjoxLCJkZWZhdWx0IjowfX19LCIxMyI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IjJuZCBjaGlsZFx1MjAxOSdzIGZpcnN0IG5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19pbnB1dF8yIiwiZXh0cmEiOiJncm93X3dpdGhfdXNfaW5wdXRfMiJ9fSwiMTQiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2RhdGV0aW1lIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiQ2hpbGQgMiBEb0IiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19kYXRhX3BpY2tlcl8yIiwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IkNoaWxkIDIgRG9CIGlzIGludmFsaWQiLCJzaG93Ijp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiIsImMiOiIiLCJhIjoiIn0sIm51bGwiOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInRleHQiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInByaW50X2Zvcm1hdCI6IlktbS1kIiwiZXh0cmFzIjp7ImQiOiIiLCJtIjoiIiwieSI6IiIsImgiOiIiLCJpIjoiIiwicyI6IiIsImEiOiIifSwidXNlX2pzIjpmYWxzZSwiY3VycmVudF9kYXRlIjp7Im1pbmltdW0iOjAsIm1heGltdW0iOjAsImRlZmF1bHQiOjB9fX0sIjE1Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiQ2hpbGQgMyBOYW1lIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sIm5vdGUiOiJncm93X3dpdGhfdXNfaW5wdXRfMyIsImV4dHJhIjoiZ3Jvd193aXRoX3VzX2lucHV0XzMifX0sIjE2Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV9kYXRldGltZSIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IkNoaWxkIDMgRG9CIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sIm5vdGUiOiJncm93X3dpdGhfdXNfZGF0YV9waWNrZXJfMyIsImN1c3RfcmVxdWlyZWRfZXJyb3IiOiJDaGlsZCAzIERvQiIsInNob3ciOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYyI6IiIsImEiOiIifSwibnVsbCI6eyJkIjoiMSIsIm0iOiIxIiwieSI6IjEiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwidGV4dCI6eyJkIjoiIiwibSI6IiIsInkiOiIiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwicHJpbnRfZm9ybWF0IjoiWS1tLWQiLCJleHRyYXMiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYSI6IiJ9LCJ1c2VfanMiOmZhbHNlLCJjdXJyZW50X2RhdGUiOnsibWluaW11bSI6MCwibWF4aW11bSI6MCwiZGVmYXVsdCI6MH19fSwiMTciOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3RleHQiLCJhdHRyaWJ1dGVzIjp7Im5hbWUiOiJDaGlsZCA0IE5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19pbnB1dF80IiwiZXh0cmEiOiJncm93X3dpdGhfdXNfaW5wdXRfNCJ9fSwiMTgiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2RhdGV0aW1lIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiQ2hpbGQgNCBEb0IiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19kYXRhX3BpY2tlcl80IiwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IkNoaWxkIDQgRG9CIGlzIGludmFsaWQiLCJzaG93Ijp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiIsImMiOiIiLCJhIjoiIn0sIm51bGwiOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInRleHQiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInByaW50X2Zvcm1hdCI6IlktbS1kIiwiZXh0cmFzIjp7ImQiOiIiLCJtIjoiIiwieSI6IiIsImgiOiIiLCJpIjoiIiwicyI6IiIsImEiOiIifSwidXNlX2pzIjpmYWxzZSwiY3VycmVudF9kYXRlIjp7Im1pbmltdW0iOjAsIm1heGltdW0iOjAsImRlZmF1bHQiOjB9fX0sIjE5Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV9kYXRldGltZSIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IllvdXIgZHVlIGRhdGUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6InByZWduYW5jeV9kYXRhX3BpY2tlciIsImN1c3RfcmVxdWlyZWRfZXJyb3IiOiJQcmVnbmFuY3kgZHVlIGRhdGUgaXMgaW52YWxpZCIsInNob3ciOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYyI6IiIsImEiOiIifSwibnVsbCI6eyJkIjoiMSIsIm0iOiIxIiwieSI6IjEiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwidGV4dCI6eyJkIjoiIiwibSI6IiIsInkiOiIiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwicHJpbnRfZm9ybWF0IjoiWS1tLWQiLCJleHRyYXMiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYSI6IiJ9LCJ1c2VfanMiOmZhbHNlLCJjdXJyZW50X2RhdGUiOnsibWluaW11bSI6MCwibWF4aW11bSI6MCwiZGVmYXVsdCI6MH19fSwiMjAiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IkFjY2VwdCBUZXJtcyBhbmQgQ29uZGl0aW9ucyIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJub3RlIjoiSSBhY2NlcHQgdGhlIDxhIGhyZWY9XCJcL2xlZ2FsXC90ZXJtcy1vZi11c2VcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIk9wZW5zIGluIG5ldyB0YWJcIj50ZXJtcyAmIGNvbmRpdGlvbnM8XC9hPiBvZiB1c2UuIFJlYWQgb3VyIDxhIGhyZWY9XCJcL2xlZ2FsXC9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgdGl0bGU9XCJPcGVucyBpbiBuZXcgdGFiXCI+cHJpdmFjeSBwb2xpY3k8XC9hPi4iLCJkZWZhdWx0IjpbImZhbHNlIl0sImV4dHJhIjoidGVybXMiLCJvcHRpb25zIjp7InRydWUiOiJ0cnVlIn0sImFsbG93X2VtcHR5Ijp0cnVlLCJlbXB0eV9rZXkiOiJmYWxzZSIsImVtcHR5X3RleHQiOiJmYWxzZSJ9fX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJuYW1lIjp7ImF0dHJpZCI6IjE3MzYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiRm9ybSBDb250ZW50cyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImxvZ19zdWJtaXNzaW9ucyI6eyJhdHRyaWQiOiIxNzQ4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNob3dfcmVzdWx0cyI6eyJhdHRyaWQiOiIxNjkyIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9tYWluIjp7ImF0dHJpZCI6IjE3MTYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2JvZHljb3B5X3RoYW5rX3lvdSI6eyJhdHRyaWQiOiIxNzMwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9leGl0Ijp7ImF0dHJpZCI6IjE3NTUiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9jb25maXJtYXRpb24iOnsiYXR0cmlkIjoiMTY5MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9lcnJvcnNfbXNnIjp7ImF0dHJpZCI6IjE3NzAiLCJ0eXBlIjoid3lzaXd5ZyIsInZhbHVlIjoiPHAgY2xhc3M9XCJzcS1mb3JtLWVycm9ycy1tZXNzYWdlXCI+VGhlcmUgd2VyZSBlcnJvcnMgc3VibWl0dGluZyB0aGUgZm9ybS4mbmJzcDsmbmJzcDtQbGVhc2UgY29ycmVjdCB0aGUgbWFya2VkIGZpZWxkcyBhbmQgdHJ5IGFnYWluLjxcL3A+IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVxdWlyZV9jYXB0Y2hhIjp7ImF0dHJpZCI6IjE3MTgiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbGVuZ3RoIjp7ImF0dHJpZCI6IjE3NTAiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiI1IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfem9vbSI6eyJhdHRyaWQiOiIxNzAxIiwidHlwZSI6ImZsb2F0IiwidmFsdWUiOjIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2xpbmtfdGV4dCI6eyJhdHRyaWQiOiIxNzY1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlZ2VuZXJhdGUgc2VjdXJpdHkga2V5IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2NvbmZpcm1hdGlvbl9wYWdlIjp7ImF0dHJpZCI6IjE3NDAiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNhdmVfYW5kX2V4aXRfYnV0dG9uIjp7ImF0dHJpZCI6IjE2ODYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiU2F2ZSBhbmQgRXhpdCIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVuYXR0YWNoZWRfcGFnZV9uYW1lIjp7ImF0dHJpZCI6IjE3NjkiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVW5hdHRhY2hlZCBGb3JtIEZpZWxkcyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pc3Npb25fZXhwaXJ5X3RpbWUiOnsiYXR0cmlkIjoiMTcwNiIsInR5cGUiOiJkdXJhdGlvbiIsInZhbHVlIjowLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV90ZXh0Y29sb3VyIjp7ImF0dHJpZCI6IjE3MTEiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfYm9yZGVyY29sb3VyIjp7ImF0dHJpZCI6IjE2OTUiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF9idXR0b25fZXh0cmFzIjp7ImF0dHJpZCI6IjE3MjQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbl9leHRyYXMiOnsiYXR0cmlkIjoiMTcwNyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV91c2Vmb250Ijp7ImF0dHJpZCI6IjE3NTkiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfd2lkdGgiOnsiYXR0cmlkIjoiMTc3NiIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2hlaWdodCI6eyJhdHRyaWQiOiIxNzYxIiwidHlwZSI6ImludCIsInZhbHVlIjoiMzYiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmMiOnsiYXR0cmlkIjoiMTc2MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmNfY29sb3VyIjp7ImF0dHJpZCI6IjE3MjkiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjRDIwQTBBIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfaW5jbHVkZV91cHBlcmNhc2UiOnsiYXR0cmlkIjoiMTc0NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NzQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfbW9sbG9tIjp7ImF0dHJpZCI6IjE3MjciLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm1vbGxvbV9xdWVzdGlvbnNfdG9fY2hlY2siOnsiYXR0cmlkIjoiMTY4MiIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fdW5zdXJlX3N1Ym1pc3Npb25fdGV4dCI6eyJhdHRyaWQiOiIxNzM5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NjMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJkaXNhYmxlX2tleXdvcmRfcmVwbGFjZW1lbnRzIjp7ImF0dHJpZCI6IjE2ODQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9saW1pdCI6eyJhdHRyaWQiOiIxNzQzIiwidHlwZSI6ImludCIsInZhbHVlIjoiMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdWJtaXNzaW9uX2xpbWl0X3JlYWNoZWRfdGV4dCI6eyJhdHRyaWQiOiIxNjk5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pc3Npb24gbGltaXQgaGFzIGJlZW4gcmVhY2hlZCBvbiB0aGlzIGZvcm0uIE5vIG1vcmUgc3VibWlzc2lvbiB3aWxsIGJlIGFjY2VwdGVkLiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19pbmNvbXBsZXRlX3N1Ym1pc3Npb24iOnsiYXR0cmlkIjoiMTc1NiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZW1haWxfcSI6eyJhdHRyaWQiOiIxNjg5IiwidHlwZSI6ImFzc2V0aWQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9zdWJtaXRfYnV0dG9uX3RleHQiOnsiYXR0cmlkIjoiMTcxMyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJTdWJtaXQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZm9ybV9mb3JtYXQiOnsiYXR0cmlkIjoiMTY5NyIsInR5cGUiOiJ3eXNpd3lnIiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9pbmZvX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzUyIiwidHlwZSI6Ind5c2l3eWciLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF90b19wYWdlX3VybCI6eyJhdHRyaWQiOiIxNzU4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfcmVjYXB0Y2hhIjp7ImF0dHJpZCI6IjE2OTYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2FwdGNoYV92Ml90aGVtZSI6eyJhdHRyaWQiOiIxNzcyIiwidHlwZSI6InNlbGVjdGlvbiIsInZhbHVlIjoibGlnaHQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjYXB0Y2hhX3YyX3NpemUiOnsiYXR0cmlkIjoiMTc1MSIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6Im5vcm1hbCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ0aW1lX3JlcXVpcmVtZW50Ijp7ImF0dHJpZCI6IjE3MzQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ0aW1lX3JlcXVpcmVtZW50X2Vycm9yX21lc3NhZ2UiOnsiYXR0cmlkIjoiMTc2MiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV9leHRyYV9hdHRyaWJ1dGUiOnsiYXR0cmlkIjoiMTcxOSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVzdHJpY3RlZF9zdWJtaXNzaW9uX2FjY2VzcyI6eyJhdHRyaWQiOiIxNzA0IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2lwaWVudF9lbWFpbHNfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzkiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJodG1sX2Zvcm1hdCI6IiIsInRleHRfZm9ybWF0IjoiIiwiaW5jX2F0dGFjaG1lbnRzIjpbXSwiYXR0YWNobWVudHMiOltdLCJhc3NldF90b19zZW5kIjoiIiwiZGVzaWduX3RvX2FwcGx5IjoiIiwibGF5b3V0X3RvX2FwcGx5IjoiIn0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2ZpZWxkIjp7ImF0dHJpZCI6IjE3ODAiLCJ0eXBlIjoiYXNzZXRpZCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX19LCJtZXRhZGF0YSI6W119"},"instagramUrl":"https://www.instagram.com/raisingchildren.net.au","linkedinUrl":"https://au.linkedin.com/company/raising-children-network","twitterUrl":"","facebookUrl":"https://www.facebook.com/RaisingChildrenNetwork","googlePlusUrl":"null","youtubeUrl":"https://www.youtube.com/user/RaisingChildren2011","matrixSearchPage":"https://raisingchildren.net.au/search","movieReviewSearchPage":"https://raisingchildren.net.au/guides/movie-reviews","footerMenuBlocks":["a23224","a23232","a23240"],"_webserviceSuggestUrl":"https://prc-search.squiz.cloud/s/suggest.json","_webserviceSearchUrl":"https://prc-search.squiz.cloud/s/search.html","_webserviceSearchHost":"https://prc-search.squiz.cloud","queryObject":{"query":"!padrenull","collection":"raising-children-web","uatCollection":"raising-children-web-uat","form":"matrix_json","metaAND_pageContentLang":"en"}} })(sq); </script> <!--<script async src="https://raisingchildren.net.au?SQ_DESIGN_NAME=menu"></script>--> <!-- menu.optimised.js PROD:#98836 STAGE: #92832 DEV: #92816 --> <script async src="https://raisingchildren.net.au/menu.optimised.js"></script> <!-- /end src-matrix/nested-content/head/global-design-head-site-state.html --> <!-- begin src-matrix/nested-content/head/global-design-head-page-state.html --> <meta name="lineage" content="91;24507;24647;26751;34303" /> <meta name="top_level_item" content="Teens (12-18 years)" /> <meta name="stage_group" content="Pre-teens & teens" /> <meta name="asset_name" content="Hygiene: pre-teens and teenagers" /> <meta name="asset_short_name" content="Hygiene: pre-teens & teens" /> <meta name="page_thumbnail_url" content="" /> <meta name="header_banner_url" content="https://raisingchildren.net.au/__data/assets/image/0022/48640/hygiene.jpg" /> <meta name="header_banner_square_url" content="https://raisingchildren.net.au/__data/assets/image/0025/48643/hygienenarrow.jpg" /> <meta name="language" content="en" /> <meta name="article_type" content="Article" /> <meta name="fb_tab" content="Article" /> <meta name="fb_search_meta" content="Article" /> <script> sq.state.page = {"articleType":"Article","lineage":["91","24507","24647","26751","34303"],"lineageDetail":[{"asset_assetid":"91","asset_name":"Raising Children Network","asset_short_name":"Raising Children Network","asset_linking_info_current":{"linkid":"94","link_type":"1","link_value":"","lineage":["83"]},"asset_url":"https://raisingchildren.net.au","asset_metadata_stage_group":null},{"asset_assetid":"24507","asset_name":"Teens (12-18 years)","asset_short_name":"Teens","asset_linking_info_current":{"linkid":"178230","link_type":"1","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/teens","asset_metadata_stage_group":"Pre-teens & teens"},{"asset_assetid":"24647","asset_name":"Teens: development","asset_short_name":"Development","asset_linking_info_current":{"linkid":"94480","link_type":"1","link_value":"","lineage":["83","91","24507"]},"asset_url":"https://raisingchildren.net.au/teens/development","asset_metadata_stage_group":null},{"asset_assetid":"26751","asset_name":"Teens: periods & hygiene","asset_short_name":"Periods & hygiene","asset_linking_info_current":{"linkid":"97216","link_type":"1","link_value":"","lineage":["83","91","24507","24647"]},"asset_url":"https://raisingchildren.net.au/teens/development/periods-hygiene","asset_metadata_stage_group":null},{"asset_assetid":"34303","asset_name":"Hygiene: pre-teens and teenagers","asset_short_name":"Hygiene: pre-teens & teens","asset_linking_info_current":{"linkid":"108671","link_type":"1","link_value":"","lineage":["83","91","24507","24647","26751"]},"asset_url":"https://raisingchildren.net.au/teens/development/periods-hygiene/hygiene-pre-teens-teens","asset_metadata_stage_group":null}],"frontend_asset_name":"Hygiene: pre-teens and teenagers","frontend_asset_short_name":"Hygiene: pre-teens & teens","assetType":"page_standard","assetid":"34303","asset_url":"https://raisingchildren.net.au/teens/development/periods-hygiene/hygiene-pre-teens-teens","thumbnail_url":"","defaultThumbnailURL":"https://raisingchildren.net.au/__data/assets/image/0006/40110/placeholder-wide.jpg","defaultThumbnailSquareURL":"https://raisingchildren.net.au/__data/assets/image/0014/40109/placeholder-narrow.jpg","video":false,"counter":2714,"description":"Our essential guide to daily personal hygiene for pre-teens and teens covers clean hands, body odour, smelly feet, bad breath, dental care, periods and shaving.","videoUrl":"","videoDescription":"","l1Header":"Teens (12-18 years)","heroSection":{"otherLanguage":false,"background":{"mobile":"https://raisingchildren.net.au/__data/assets/image/0025/48643/hygienenarrow.jpg","tablet":"https://raisingchildren.net.au/__data/assets/image/0022/48640/hygiene.jpg","desktop":"https://raisingchildren.net.au/__data/assets/image/0022/48640/hygiene.jpg","show":true},"preheading":"","ageMin":"108","ageMax":"180","ageSuitabilityDisplay":"","heading":"Hygiene: pre-teens and teenagers","intro":"Our essential guide to daily personal hygiene for pre-teens and teens covers clean hands, body odour, smelly feet, bad breath, dental care, periods and shaving.","showIntro":false,"landing":false,"button":{"toParent":{"href":"https://raisingchildren.net.au/teens/development/periods-hygiene","text":"Periods & hygiene"},"share":{"href":"https://raisingchildren.net.au/teens/development/periods-hygiene/hygiene-pre-teens-teens","addThisLink":""}},"rtl":"ltr"},"topLevelItem":{"asset_assetid":"24507","asset_name":"Teens (12-18 years)","asset_short_name":"Teens","asset_linking_info_current":{"linkid":"178230","link_type":"1","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/teens","asset_metadata_stage_group":"Pre-teens & teens"},"stageGroup":{"asset_assetid":"24507","asset_name":"Teens (12-18 years)","asset_short_name":"Teens","asset_linking_info_current":{"linkid":"178230","link_type":"1","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/teens","asset_metadata_stage_group":"Pre-teens & teens"},"pageContentDir":"ltr","otherLanguage":"en"} </script> <!-- /end src-matrix/nested-content/head/global-design-head-page-state.html --> <!-- begin src-matrix/nested-content/head/global-design-head-user-state.html --> <script> sq.state.user = {"isUserLoggedIn":false,"loggedInOverride":false,"first_name":"","last_name":""} </script> <!-- /end src-matrix/nested-content/head/global-design-head-user-state.html --> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <title>Personal hygiene for pre-teens & teens | Raising Children Network</title> <!-- Article //--> <!-- Article //--> <meta name="article_intro" content="<p>Key points</p><ul type="disc"><li>Good hygiene is important for pre-teen and teenage health and confidence.</li><li>Basic hygiene is washing your hands, cleaning your body and teeth, and covering your mouth when coughing.</li><li>Pre-teen and teenage hygiene also involves cleaning genitals and managing periods, body odour, shaving and more.</li><li>You can be a great role model by having good personal hygiene yourself.</li></ul>" /> <meta name="article_inpage_show" content="true" /> <meta name="article_inpage_intro" content="On this page:" /> <meta name="article_acknowledgements" content="<p>Our content is regularly reviewed for quality and currency. The last review of this article was by Dr Simone Craig, GP and Clinical Lecturer, Department of General Practice and Primary Care, University of Melbourne. The article has also received <a href="https://raisingchildren.net.au/about-us/our-experts-partners/scientific-advisory-board">Scientific Advisory Board</a> review.</p>" /> <meta name="article_references" content="<p>Jatrana, S., Hasan, M., Mamun, A., &amp; Fatima, Y<em>.</em> (2021). Global variation in hand hygiene practices among adolescents: The role of family and school-level factors. <em>International Journal of Environmental Research and Public Health</em>, <em>18</em>(9). Article 4984. https://doi.org/10.3390/ijerph18094984.</p><p>Muller, P.M. (2016). Measuring hand hygiene when it matters. <em>The Lancet, 16</em>(12), 1306-1307. https://doi.org/10.1016/S1473-3099(16)30335-8.</p><p>Zhang, L., Waselewski, M., Nawrocki, J., Williams, I., Fontana, M., &amp; Chang, T. (2023). Perspectives on dental health and oral hygiene practice from US adolescents and young adults during the COVID-19 pandemic. <em>PLoS ONE</em>, <em>17</em>(1), 1-10. https://doi.org/10.1371/journal.pone.0280533.</p>" /> <meta name="article_related_articles" content="["33706","37923","43491","39403","37541","31688"]" /> <meta name="article_external_links" content="" /> <meta name="article_tags" content="" /> <meta name="article_lote_name" content="" /> <meta name="article_helpful_yes" content="2714" /> <meta name="article_helpful_no" content="883" /> <!-- Configuration - Page Layout //--> <!-- Age //--> <meta name="page_age_min" content="108" /> <meta name="page_age_max" content="180" /> <meta name="page_age_suitability_display" content="" /> <!-- Top Banner //--> <meta name="page_layout_header_banner" content="48640" /> <meta name="page_layout_header_banner_square" content="48643" /> <meta name="page_layout_header_show_banner" content="true" /> <meta name="page_layout_header_intro" content="" /> <meta name="page_layout_header_show_intro" content="false" /> <meta name="page_layout_header_landing" content="" /> <meta name="page_layout_header_show_breadcrumbs" content="true" /> <!-- Legacy //--> <meta name="page_legacy_asset_id" content="9286" /> <meta name="page_legacy_asset_type" content="Article" /> <meta name="page_legacy_urls" content="http://raisingchildren.net.au/articles/hygiene.html" /> <meta name="page_legacy_short_title" content="Hygiene: pre-teens & teens" /> <!-- Content //--> <meta name="page_content_svg_thumbnail" content="" /> <meta name="page_content_dir" content="ltr" /> <meta name="page_content_lang" content="en" /> <!-- Layout //--> <meta name="page_layout_header_site_show" content="true" /> <meta name="page_layout_sidebar_left_show" content="true" /> <meta name="page_layout_sidebar_left_site_show" content="true" /> <meta name="page_layout_sidebar_right_site_show" content="true" /> <meta name="page_layout_share_social_links_show" content="true" /> <meta name="page_layout_footer_site_show" content="true" /> <meta name="page_layout_sidebar_above_main_mobile" content="sidebar-below" /> <!-- Main Nav //--> <meta name="page_header_nav_main_heading" content="Hygiene: pre-teens &amp; teens" /> <meta name="page_header_nav_main_description" content="" /> <meta name="page_header_nav_main_group" content="" /> <meta name="page_header_nav_icon" content="" /> <!-- Advanced //--> <meta name="page_layout_head" content="" /> <meta name="page_layout_breadcrumbs_show" content="true" /> <meta name="page_layout_h1_show" content="false" /> <meta name="page_layout_header_pre" content="" /> <meta name="page_layout_header_top" content="40061" /> <meta name="page_layout_header_banner_show" content="true" /> <meta name="page_layout_header_banner_show_tabs" content="false" /> <meta name="page_layout_header_bottom" content="" /> <meta name="page_layout_main_pre" content="" /> <meta name="page_layout_sidebar_left_top" content="" /> <meta name="page_layout_sidebar_left_bottom" content="" /> <meta name="page_layout_sidebar_right_top" content="" /> <meta name="page_layout_sidebar_right_bottom" content="" /> <meta name="page_layout_footer_top" content="" /> <meta name="page_layout_footer_bottom" content="" /> <meta name="page_layout_footer_post" content="23595" /> <meta name="page_layout_has_main_page_wrapper" content="true" /> <meta name="page_layout_head_ad_hoc_styles" content="" /> <meta name="page_layout_footer_ad_hoc_scripts" content="" /> <!-- SEO - Basic Metadata //--> <!-- User Defined //--> <meta name="page_title" content="Personal hygiene for pre-teens & teens | Raising Children Network" /> <meta name="description" content="Our essential guide to daily personal hygiene for pre-teens and teens covers clean hands, body odour, smelly feet, bad breath, dental care, periods and shaving." /> <meta name="date" content="2024-05-22 00:00:00" /> <link rel="canonical" href="https://raisingchildren.net.au/pre-teens/healthy-lifestyle/hygiene-dental-care/hygiene-pre-teens-teens" /><!-- #44918 --> <meta name="keywords" content="Hygiene, Hyegene, Hygeine, Hygiene practices, Hygienic, Hygienic practices" /> <meta name="author" content="" /> <meta name="copyright" content="" /> <meta name="robots" content="index,follow" /> <!-- SEO - Open Graph //--> <!-- Required //--> <meta property="og:title" content="Hygiene: pre-teens and teenagers" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://raisingchildren.net.au/teens/development/periods-hygiene/hygiene-pre-teens-teens" /> <meta property="og:image" content="https://raisingchildren.net.au/__data/assets/image/0022/48640/hygiene.jpg" /> <!-- Optional //--> <meta property="og:audio" content="https://raisingchildren.net.au/teens/development/periods-hygiene/hygiene-pre-teens-teens" /> <meta property="og:site_name" content="Raising Children Network" /> <!-- SEO - Twitter Card //--> <!-- Card //--> <meta property="twitter:title" content="Hygiene: pre-teens and teenagers" /> <meta property="twitter:image" content="https://raisingchildren.net.au/__data/assets/image/0022/48640/hygiene.jpg" /> <meta property="twitter:image_width" content="1280" /> <meta property="twitter:image_height" content="720" /> <!-- Products //--> <!-- iPhone App //--> <!-- iPad App //--> <!-- Google Play //--> <!-- Nested Favicons: #113 --> <link rel="apple-touch-icon" sizes="180x180" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/favicon-16x16.png"> <link rel="manifest" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/site.webmanifest"> <link rel="mask-icon" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <!--<script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/modernizr.min.js"></script>--> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/react.production.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/react-dom.production.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/prop-types.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/create-react-class.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/moment.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/en-au.js" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/main.css?h=3376513"> <!-- Site Layout Footer Scripts --> <!-- /Site Head --> <!-- 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-TT2KS7B');</script> <!-- End Google Tag Manager --> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <meta name="google-site-verification" content="EnaXP8S0SL4XL7MB_al5NC98jTn5rosmqIa6o2ICQ6E" /> <meta name="asset_id" content="34303"/> <meta name="site_internal_domains" content=""/> <!-- Running Squiz Matrix Developed by Squiz - http://www.squiz.net Squiz, Squiz Matrix, MySource, MySource Matrix and Squiz.net are registered Trademarks of Squiz Pty Ltd Page generated: 03 December 2024 09:32:08 --> </head> <body> <input type="hidden" name="token" value="6ed85534064c021f441a3080ac0f937ea7c204c1" class="sq-form-field" id="token" /><!-- begin src-matrix/nested-content/header/global-design-skip-to-content.html --> <div id="skip-to-links-wrapper"> <script> (function(sq) { var isFirefox = typeof InstallTrigger !== 'undefined'; if(isFirefox) { document.getElementById('skip-to-links-wrapper').style.visibility = 'hidden'; sq.ready(() => document.getElementById('footer'), () => document.getElementById('skip-to-links-wrapper').style.visibility = 'visible'); } })(window.sq) </script> <div id="skip-links" class="skip-links" aria-hidden="true"> <ul class="skip-links__list"> <li class="skip-links__item"><a class="skip-links__link" href="#main">Skip to content</a></li> <li class="skip-links__item"><a class="skip-links__link" href="#navigation">Skip to navigation</a></li> </ul> </div> </div> <!-- /end src-matrix/nested-content/header/global-design-skip-to-content.html --> <div id="page-wrapper" class="page-wrapper"> <!-- begin src-matrix/nested-content/header/global-design-header.html --> <div id="header-mobile"></div> <div id="header-tablet"></div> <div id="header-desktop"></div> <script>console['info']("Begin 'transducer' for container #global-modal-44447 globalModal")</script><script>console['info']("Complete 'transducer' for container #global-modal-44447 globalModal")</script><script>console['info']("Begin 'globalModal' for container #global-modal-44447")</script><!-- Begin container id #global-modal-44447 'globalModal' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/global-modal.js?v=2023-04-24T035717.998Z" id="globalModal"></script></div><div id="global-modal-44447" class="global-modal container-template"></div><script>try {sq.globalModal('global-modal-44447', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"global-modal","namespace":"global-modal","assetid":"44447","id":"global-modal-44447","camel":"globalModal","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/global-modal.js","containerType":"div"}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `globalModal` with id `global-modal-44447`") }</script></div> <!-- End container id #global-modal-44447 'globalModal' --> <script>console['info']("Complete 'globalModal' for container #global-modal-44447")</script> <header role="banner" class="header" id="header"> <!-- begin src-matrix/nested-content/header/global-site-header.html --> <div class="header__contents"><div class="header__bar"><div class="header__container"><button type="button" id="toggle-nav-main" aria-controls="header-drawer-contents" aria-pressed="false" class="header-control header-control--nav"><span class="sr-only">Toggle Main Nav Menu</span></button><a href="https://raisingchildren.net.au" class="header-logo" title="Raising Children Network"><img src="https://raisingchildren.net.au/__data/assets/file/0012/23340/logo.svg" alt="Raising Children Network" class="header-logo__image"/></a><button type="button" id="toggle-header-search" aria-controls="toggle-header-search" aria-pressed="false" class="header-control header-control--search"><span class="sr-only">Toggle Header Search</span></button></div></div><div class="header-search"><button type="button" id="close-header-search-mobile" aria-controls="close-header-search-mobile" class="header-control header-control--close-search-mobile"><span class="header-control--close-search-mobile--text">close</span></button><div class="search"><form method="get" role="search" action="https://raisingchildren.net.au/search" id="header-search" class="search__form"></form></div></div><div class="header-drawer" id="header-drawer"><div id="header-drawer-contents" class="header-drawer__contents"><div class="header-menus"><nav id="nav-main" class="nav-main" role="navigation"><ul id="nav-main-list-base" aria-label="Main Navigation Menu" class="nav-main__list nav-main__list--level-1"><li role="none" class="nav-main__item nav-main__item--level-home"><a href="https://raisingchildren.net.au" class="nav-main__link nav-main__link--level-home" role="img" title="Link to Raising Children Network homepage" aria-label="Link to Raising Children Network homepage"><span class="nav-main__link-text nav-main__link-text--home"></span></a></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/pregnancy" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Pregnancy</span></a><div class="level-wrapper menu-item-0"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/newborns" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Newborns</span></a><div class="level-wrapper menu-item-1"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/babies" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Babies</span></a><div class="level-wrapper menu-item-2"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/toddlers" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Toddlers</span></a><div class="level-wrapper menu-item-3"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/preschoolers" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Preschoolers</span></a><div class="level-wrapper menu-item-4"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/school-age" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">School age</span></a><div class="level-wrapper menu-item-5"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/pre-teens" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Pre-teens</span></a><div class="level-wrapper menu-item-6"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/teens" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Teens</span></a><div class="level-wrapper menu-item-7"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/grown-ups" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Grown-ups</span></a><div class="level-wrapper menu-item-8"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/autism" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Autism</span></a><div class="level-wrapper menu-item-9"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/disability" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Disability</span></a><div class="level-wrapper menu-item-10"></div></li></ul></nav></div></div></div></div> </header> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/navigation.js?h=3376513"></script> <script> // begin src-matrix/nested-content/header/site-layout-header-navigation-transducer.js (function (exports,sq) { 'use strict'; var generateItems = function (menu, final) { var nmenu = {}; if (menu.meta) { var meta = menu.meta; delete menu['meta']; final[meta.assetid] = meta; Object.keys(menu).forEach(function (item) { var menuItem = menu[item]; if (Object.keys(menuItem).length) { menu[item] = generateItems(menuItem, final); } nmenu[item] = menu[item]; }); } return nmenu; }; var navigationTransducer = function (ref) { var state = ref.state; var menu = ref.menu; var siteTree = ref.siteTree; menu = sq.copy(menu); menu.meta = { assetid: 'base' }; var final = Object.assign(sq.copy(state.site), sq.copy(state.user), {siteTree: siteTree}); final.items = generateItems(menu, final); return final; }; var baseNavItems = function (siteTree, level) { if ( level === void 0 ) level = 0; return Object.keys(siteTree).reduce(function (accum, key, index) { if (key !== 'meta') { var childSiteTree = siteTree[key]; accum[key] = { meta: childSiteTree.meta }; if (level < 1) { accum[key] = Object.assign({}, accum[key], baseNavItems(childSiteTree, level + 1)); } } return accum; }, {}); }; sq.navigationTransducer = navigationTransducer; sq.baseNavItems = baseNavItems; }({},sq)); // /end src-matrix/nested-content/header/site-layout-header-navigation-transducer.js /** * Dependencies: * - State: src-matrix/nested-content/head/global-design-head-site-state.html */ sq.ready( function() { return sq.siteTree }, function () { const siteTree = sq.baseNavItems(sq.copy(sq.siteTree)); document.getElementById('header').innerHTML = ''; sq.navigation('header', sq.navigationTransducer({state: sq.state, menu: siteTree, siteTree: siteTree})); } ) </script> <!-- /end src-matrix/nested-content/header/global-site-header.html --> <!-- /end src-matrix/nested-content/header/global-design-header.html --> <div class="main-wrapper"> <script>console['info']("Begin 'transducer' for container #hero-section-52511 heroSection")</script><script>console['info']("Complete 'transducer' for container #hero-section-52511 heroSection")</script><script>console['info']("Begin 'heroSection' for container #hero-section-52511")</script><!-- Begin container id #hero-section-52511 'heroSection' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/hero-section.js?v=2023-04-24T035717.998Z" id="heroSection"></script></div><section id="hero-section-52511" class="hero container-template"></section><script>try {sq.heroSection('hero-section-52511', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"hero","namespace":"hero-section","assetid":"52511","id":"hero-section-52511","otherLanguage":false,"background":{"mobile":"https://raisingchildren.net.au/__data/assets/image/0025/48643/hygienenarrow.jpg","tablet":"https://raisingchildren.net.au/__data/assets/image/0022/48640/hygiene.jpg","desktop":"https://raisingchildren.net.au/__data/assets/image/0022/48640/hygiene.jpg","show":true},"preheading":"","ageMin":"108","ageMax":"180","ageSuitabilityDisplay":"","heading":"Hygiene: pre-teens and teenagers","intro":"Our essential guide to daily personal hygiene for pre-teens and teens covers clean hands, body odour, smelly feet, bad breath, dental care, periods and shaving.","showIntro":false,"landing":false,"showBreadcrumbs":true,"button":{"toParent":{"href":"https://raisingchildren.net.au/teens/development/periods-hygiene","text":"Periods & hygiene"},"share":{"href":"https://raisingchildren.net.au/teens/development/periods-hygiene/hygiene-pre-teens-teens","addThisLink":"//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5b9f3f5d2d7038d5","icons":{"fbIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-fb.svg","mailIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-mail.svg","pinIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-pin.svg","plusIcon":"","printIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-print.svg","linkedinIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-linkedin.svg"}}},"rtl":"ltr","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/hero-section.js","camel":"heroSection","containerType":"section"}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `heroSection` with id `hero-section-52511`") }</script></div> <!-- End container id #hero-section-52511 'heroSection' --> <script>console['info']("Complete 'heroSection' for container #hero-section-52511")</script> <!-- begin src-matrix/nested-content/main/global-design-body-main.html --> <div class="container"> <div class="row justify-content-center sidebar-below"> <div class="col-sm-12 col-lg-9 section-main"> <main class="main" id="main"> <div class="content-viewport"> <div > <script>console['info']("Begin 'transducer' for container #article-intro-23457 articleIntro")</script><script>console['info']("Complete 'transducer' for container #article-intro-23457 articleIntro")</script><script>console['info']("Begin 'articleIntro' for container #article-intro-23457")</script><!-- Begin container id #article-intro-23457 'articleIntro' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-intro.js?v=2023-04-24T035717.998Z" id="articleIntro"></script></div><div id="article-intro-23457" class="article-intro container-template"></div><script>try {sq.articleIntro('article-intro-23457', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"article-intro","namespace":"article-intro","assetid":"23457","id":"article-intro-23457","camel":"articleIntro","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-intro.js","containerType":"div","counter":2714,"introduction":"PHA+S2V5IHBvaW50czwvcD48dWwgdHlwZT0iZGlzYyI+PGxpPkdvb2QgaHlnaWVuZSBpcyBpbXBvcnRhbnQgZm9yIHByZS10ZWVuIGFuZCB0ZWVuYWdlIGhlYWx0aCBhbmQgY29uZmlkZW5jZS48L2xpPjxsaT5CYXNpYyBoeWdpZW5lIGlzIHdhc2hpbmcgeW91ciBoYW5kcywgY2xlYW5pbmcgeW91ciBib2R5IGFuZCB0ZWV0aCwgYW5kIGNvdmVyaW5nIHlvdXIgbW91dGggd2hlbiBjb3VnaGluZy48L2xpPjxsaT5QcmUtdGVlbiBhbmQgdGVlbmFnZSBoeWdpZW5lIGFsc28gaW52b2x2ZXMgY2xlYW5pbmcgZ2VuaXRhbHMgYW5kIG1hbmFnaW5nIHBlcmlvZHMsIGJvZHkgb2RvdXIsIHNoYXZpbmcgYW5kIG1vcmUuPC9saT48bGk+WW91IGNhbiBiZSBhIGdyZWF0IHJvbGUgbW9kZWwgYnkgaGF2aW5nIGdvb2QgcGVyc29uYWwgaHlnaWVuZSB5b3Vyc2VsZi48L2xpPjwvdWw+"}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `articleIntro` with id `article-intro-23457`") }</script></div> <!-- End container id #article-intro-23457 'articleIntro' --> <script>console['info']("Complete 'articleIntro' for container #article-intro-23457")</script> <div id="inpage-nav"></div> <div id="main-content" > <div id="content_container_34305"> <h2>Helping pre-teens and teenagers build personal hygiene habits</h2><p>When your child was younger, you taught them the basics of good hygiene – <a href="https://raisingchildren.net.au/teens/parenting-in-pictures/hand-washing-in-pictures">washing hands</a>, covering their mouth when they cough, and having regular baths or showers. You also had to help your child with things like cleaning and flossing teeth, at least to start with.</p><p><strong>Adolescence is a time to build on these basics.</strong> It’s a time when <a href="https://raisingchildren.net.au/teens/development/puberty-sexual-development/physical-changes-in-puberty">your child’s changing body</a> means that personal hygiene will need to change too. For example, your child might need to start using antiperspirant deodorant. And just like when your child was younger, you might need to help them get started.</p><p class="asterisk">Good hygiene habits in childhood are a great foundation for good hygiene in the teenage years. And if you’ve got open, honest communication with your child, it’ll make it easier to talk about the personal hygiene issues that come up in adolescence.</p><h2>Why good personal hygiene matters for pre-teens and teenagers</h2><p>Keeping clean is an <strong>important part of staying healthy</strong>. For example, the simple act of washing hands before eating and after using the toilet is a proven and effective way of fighting off germs and avoiding sickness.</p><p>Being clean is also an important part of <a href="https://raisingchildren.net.au/teens/development/social-emotional-development/confidence-in-teens">confidence for pre-teens and teenagers</a>. If your child’s body and breath smell OK, their clothes are clean, and they’re on top of their basic personal hygiene, it can help them to feel comfortable with other people.</p><h2>Helping pre-teens and teenagers manage personal hygiene</h2><p>You’ve got an important role to play in making sure your child knows about how their body and hygiene needs are going to change and in getting them ready to manage the changes. <strong>The earlier you can start talking about these things, the better </strong>– ideally, before your child hits puberty.</p><p>You can also be a great <a href="https://raisingchildren.net.au/teens/behaviour/encouraging-good-behaviour/being-a-role-model">role model</a> for your child by demonstrating good personal hygiene habits. If your child sees you showering, cleaning your teeth and washing your hands regularly, they’ll learn that these habits are important.</p><p>You can explain to your child that keeping their body clean – especially their hands – is part of staying healthy. As an example of what germs can do, you could remind them of the last time gastro, COVID-19 or flu went through home or school.</p><h2>Body odour</h2><p>When children reach puberty, a new type of sweat gland develops in their armpits and genital areas. Skin bacteria feed on the sweat this type of gland produces, and this can lead to body odour (BO).</p><p>If your child washes their body and changes their clothes regularly, especially after physical activity, it’ll reduce the build-up of bacteria and help them avoid BO. Changing underwear and other clothes worn next to the skin is especially important. These clothes collect dead skin cells, sweat and body fluids, which bacteria love to eat. That’s why they get smelly.</p><p>The onset of puberty is also a good time for your child to start using <strong>antiperspirant deodorant</strong>. You can encourage your child to do this by letting them choose one. Note that there are many products that are deodorants but not antiperspirants. These products only cover up odour. Antiperspirants stop BO by controlling how much your child sweats.</p><h2>Dental hygiene</h2><p>Good dental and mouth hygiene is as important now as it was when your child was little, and you’ll need to keep making regular dental appointments for your child. Brushing teeth twice a day, flossing and going to the dentist regularly are vital if your child wants to avoid <a href="https://raisingchildren.net.au/guides/a-z-health-reference/bad-breath">bad breath</a>, <a href="https://raisingchildren.net.au/guides/a-z-health-reference/gingivitis-gum-disease">gum problems</a> and <a href="https://raisingchildren.net.au/teens/healthy-lifestyle/hygiene-dental-care/tooth-decay">tooth decay</a>.</p><p>You can read more about <a href="https://raisingchildren.net.au/pre-teens/healthy-lifestyle/hygiene-dental-care/dental-care-9-11-years">dental care for pre-teens</a> and <a href="https://raisingchildren.net.au/teens/healthy-lifestyle/hygiene-dental-care/teen-dental-care">dental care for teenagers</a>.</p><h2>Feet</h2><p>Smelly feet and shoes can be a problem for pre-teens and teenagers, whether they’re sporty or not. Your child can avoid this issue by giving their feet extra attention in the shower and making sure they’re completely dry before putting shoes on. It’s a good idea to encourage your child to alternate shoes and to wear cotton socks instead of socks made from synthetic fibres.</p><h2>Genitals</h2><p>You can explain to your child that keeping their genitals clean is part of good hygiene.</p><p>Your child can wash their <strong>vulva</strong> with warm water and mild soap and gently clean the inner and outer labia and hood over the tip of the clitoris. It’s not a good idea to put cleaning products or perfumes inside the vagina.</p><p>Your child can wash their <strong>penis and scrotum</strong> with warm water and mild soap, gently pulling back the foreskin, if they have one, to clean around the tip of the penis.</p><h2>Periods</h2><p>Your child will need help to manage <a href="https://raisingchildren.net.au/teens/development/periods-hygiene/periods">periods</a> at first. For example, you might need to talk with your child about how to use pads, tampons, <a href="https://raisingchildren.net.au/_media/glossary/period-proof-underwear">period-proof underwear</a> or <a href="https://raisingchildren.net.au/_media/glossary/menstrual-cup">menstrual cups</a>.</p><h2>Shaving</h2><p>When your child starts to grow facial hair, you might need to tell them when to start shaving and how to do it. You can encourage your child by letting them choose a razor and shaving cream.</p><p class="asterisk">Pre-teens and teenagers do need extra time in the bathroom! For example, while they’re learning to shave or to handle their periods, these hygiene activities might take a bit longer. You can help by being patient and giving your child a bit more privacy.</p><h2>Personal hygiene for pre-teens and teenagers with autism, disability or other additional needs</h2><p>Pre-teens and teenagers with additional needs are likely to need extra support with their personal hygiene. When you’re thinking about how to discuss hygiene with your child with additional needs, their learning ability and style might be a factor. For example, does your child prefer to learn by listening, seeing or doing?</p><p>You could consider breaking hygiene tasks – like showering, shaving, using deodorant and cleaning teeth – into small steps. This way they might be easier for your child to learn.</p><p>If your child is in the habit of doing things at the same time each day, hygiene can be a normal and predictable part of a routine. A written or <a href="https://raisingchildren.net.au/autism/therapies-guide/visual-supports">visual schedule</a> might also help your child remember what to do when.</p><p>If you’re finding it difficult to talk with your child about puberty and periods, you could make an appointment with your GP.</p><p class="asterisk">Start talking early – before puberty. If you keep reinforcing messages about personal hygiene, most pre-teens and teenagers will get there in the end. It will help to give your child praise and encouragement for doing hygiene activities.</p> </div> </div> </div> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/inpage-nav.js"></script> <script>sq.inpageNav('inpage-nav', {show: true, counter: '2714', title: 'T24gdGhpcyBwYWdlOg=='});</script> <script>console['info']("Begin 'transducer' for container #page-rating-23295 pageRating")</script><script>console['info']("Complete 'transducer' for container #page-rating-23295 pageRating")</script><script>console['info']("Begin 'pageRating' for container #page-rating-23295")</script><!-- Begin container id #page-rating-23295 'pageRating' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/page-rating.js?v=2023-04-24T035717.998Z" id="pageRating"></script></div><div id="page-rating-23295" class="page-rating container-template"></div><script>try {sq.pageRating('page-rating-23295', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"page-rating","namespace":"page-rating","assetid":"23295","id":"page-rating-23295","camel":"pageRating","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/page-rating.js","containerType":"div","pageId":"34303","pageUrl":"https://raisingchildren.net.au/teens/development/periods-hygiene/hygiene-pre-teens-teens","message":"VGhhbmtzIGZvciB5b3VyIGZlZWRiYWNr"}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `pageRating` with id `page-rating-23295`") }</script></div> <!-- End container id #page-rating-23295 'pageRating' --> <script>console['info']("Complete 'pageRating' for container #page-rating-23295")</script><script>console['info']("Begin 'transducer' for container #articleUtilities-23326 articleUtilities")</script><script>console['info']("Complete 'transducer' for container #articleUtilities-23326 articleUtilities")</script><script>console['info']("Begin 'articleUtilities' for container #articleUtilities-23326")</script><!-- Begin container id #articleUtilities-23326 'articleUtilities' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-utilities.js?v=2023-04-24T035717.998Z" id="articleUtilities"></script></div><div id="articleUtilities-23326" class="articleUtilities container-template"></div><script>try {sq.articleUtilities('articleUtilities-23326', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"articleUtilities","namespace":"articleUtilities","assetid":"23326","id":"articleUtilities-23326","camel":"articleUtilities","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-utilities.js","containerType":"div","groupID":"accordion-group-23326","lastUpdate":"22-05-2024","title":"","items":[{"title":"Tell us what you think","content":"eyJhc3NldGlkIjoiMjMzMTYiLCJ0eXBlX2NvZGUiOiJmb3JtX2VtYWlsIiwidmVyc2lvbiI6IjAuNi4xIiwibmFtZSI6IkZvcm0gQ29udGVudHMiLCJzaG9ydF9uYW1lIjoiRm9ybSBDb250ZW50cyIsImV4dGVybmFsX2lkIjpmYWxzZSwic3RhdHVzIjoiMTYiLCJsYW5ndWFnZXMiOiJlbiIsImNoYXJzZXQiOiJ1dGYtOCIsImNyZWF0ZWQiOiIyMDE4LTA3LTAzIDE1OjIzOjM5IiwiY3JlYXRlZF91c2VyaWQiOiIxMyIsInVwZGF0ZWQiOiIyMDI0LTAxLTEwIDA5OjQ3OjQ2IiwidXBkYXRlZF91c2VyaWQiOiIxNDc3NyIsInB1Ymxpc2hlZCI6IjIwMjMtMTItMjEgMTU6MzA6MDciLCJwdWJsaXNoZWRfdXNlcmlkIjoiMTQ3NzciLCJzdGF0dXNfY2hhbmdlZCI6IjIwMjMtMTItMjEgMTU6MzA6MDciLCJzdGF0dXNfY2hhbmdlZF91c2VyaWQiOiIxNDc3NyIsInRodW1ibmFpbCI6IiIsImF0dHJpYnV0ZXMiOnsic3VibWl0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzEyIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pdCIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzQ5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlc2V0IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicXVlc3Rpb25fY29sX3dpZHRoIjp7ImF0dHJpZCI6IjE3NDQiLCJ0eXBlIjoiaHRtbF93aWR0aCIsInZhbHVlIjoiNDAlIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFuc3dlcl9jb2xfd2lkdGgiOnsiYXR0cmlkIjoiMTY5NCIsInR5cGUiOiJodG1sX3dpZHRoIiwidmFsdWUiOiI2MCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV93aWR0aCI6eyJhdHRyaWQiOiIxNzY0IiwidHlwZSI6Imh0bWxfd2lkdGgiLCJ2YWx1ZSI6IjEwMCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic29ydF9vcmRlciI6eyJhdHRyaWQiOiIxNzMzIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjpbIjIzMzE2OnExIiwiMjMzMTY6cTIiLCIyMzMxNjpxMyIsIjIzMzE2OnE0IiwiMjMzMTY6cTUiLCIyMzMxNjpxNiJdLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2JvZHljb3B5X3VuYXR0YWNoZWQiOnsiYXR0cmlkIjoiMTcyMSIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2NsaWVudF9zaWRlIjp7ImF0dHJpZCI6IjE3MjYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm5vdGVfc2l6ZSI6eyJhdHRyaWQiOiIxNjgzIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IjgwJSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtdWx0aV9wYWdlIjp7ImF0dHJpZCI6IjE3MTQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm5leHRfYnV0dG9uIjp7ImF0dHJpZCI6IjE2ODUiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiTmV4dCBQYWdlIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHJldmlvdXNfYnV0dG9uIjp7ImF0dHJpZCI6IjE3MDMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiUHJldmlvdXMgUGFnZSIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNhdmVfYnV0dG9uIjp7ImF0dHJpZCI6IjE3MDIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2F2ZV9jb25maXJtYXRpb25fbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzAwIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlNhdmUiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjb25maXJtYXRpb25fcGFnZV9uYW1lIjp7ImF0dHJpZCI6IjE3MDkiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiQ29uZmlybWF0aW9uIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicGFnZV9saXN0X2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzU3IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiVwYWdlX251bWJlciUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl93YXJuaW5nX3RpbWUiOnsiYXR0cmlkIjoiMTcyMCIsInR5cGUiOiJkdXJhdGlvbiIsInZhbHVlIjowLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwid2FybmluZ19lbWFpbF9mb3JtYXQiOnsiYXR0cmlkIjoiMTc3MyIsInR5cGUiOiJlbWFpbF9mb3JtYXQiLCJ2YWx1ZSI6eyJ0byI6W10sInRvX2Fzc2V0aWRzIjpbXSwiZnJvbSI6IiIsInJlcGx5X3RvIjoiIiwic3ViamVjdCI6IiIsImh0bWxfZm9ybWF0IjoiIiwidGV4dF9mb3JtYXQiOiIiLCJpbmNfYXR0YWNobWVudHMiOltdLCJhdHRhY2htZW50cyI6W10sImFzc2V0X3RvX3NlbmQiOiIiLCJkZXNpZ25fdG9fYXBwbHkiOiIiLCJsYXlvdXRfdG9fYXBwbHkiOiIifSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIndhcm5pbmdfZW1haWxfZm9ybWF0X3B1YmxpYyI6eyJhdHRyaWQiOiIxNjk4IiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV91c2VfY29sb3VycyI6eyJhdHRyaWQiOiIxNzMxIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2JnY29sb3VyIjp7ImF0dHJpZCI6IjE3MDgiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjRkZGRkZGIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfdHRmIjp7ImF0dHJpZCI6IjE2ODgiLCJ0eXBlIjoiYXNzZXRpZCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfZm9udF9zaXplIjp7ImF0dHJpZCI6IjE3NjgiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX21pbl9hbmdsZSI6eyJhdHRyaWQiOiIxNzIzIiwidHlwZSI6ImludCIsInZhbHVlIjoiLTIwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWF4X2FuZ2xlIjp7ImF0dHJpZCI6IjE3MzUiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX3hfc3RhcnQiOnsiYXR0cmlkIjoiMTcxNyIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjEwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWluX2Rpc3RhbmNlIjp7ImF0dHJpZCI6IjE3NDEiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIxMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX21heF9kaXN0YW5jZSI6eyJhdHRyaWQiOiIxNjkzIiwidHlwZSI6ImludCIsInZhbHVlIjoiMjAiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9pbmNsdWRlX251bWJlcnMiOnsiYXR0cmlkIjoiMTcxMCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHJvdmlkZV9hY2Nlc3NpYmxlX2NhcHRjaGEiOnsiYXR0cmlkIjoiMTc2NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9pbnZhbGlkX2Vycm9yX21lc3NhZ2UiOnsiYXR0cmlkIjoiMTc2NiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJTZWN1cml0eSBLZXkgSW5jb3JyZWN0IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9mb3JtX2ludmFsaWRfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzU0IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlZhbGlkIENBUFRDSEEgaXMgcmVxdWlyZWQsIGJ1dCBub25lIGlzIGZvdW5kIGluIHRoaXMgZm9ybSBzdWJtaXNzaW9uIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwibW9sbG9tX3NwYW1fc3VibWlzc2lvbl90ZXh0Ijp7ImF0dHJpZCI6IjE3NDYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVGhpcyBzdWJtaXNzaW9uIGxvb2tzIGxpa2UgYSBzcGFtLiBDYW5ub3QgYWNjZXB0IHRoaXMgc3VibWlzc2lvbi4iLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibW9sbG9tX2NhcHRjaGFfaW5jb3JyZWN0X3RleHQiOnsiYXR0cmlkIjoiMTczNyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJJbmNvcnJlY3Qgc2VjdXJpdHkga2V5LiBQbGVhc2UgdHJ5IGFnYWluLiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9yZWdlbl9saW5rX3RleHQiOnsiYXR0cmlkIjoiMTY5MSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZWdlbmVyYXRlIHNlY3VyaXR5IGtleSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfYWNjZXNzaWJsZV9mb3JtYXQiOnsiYXR0cmlkIjoiMTY4NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOnRydWUsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZXF1aXJlZF9maWVsZF9tYXJrIjp7ImF0dHJpZCI6IjE3NDIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiPGFiYnIgY2xhc3M9XCJzcS1mb3JtLXJlcXVpcmVkLWZpZWxkXCIgdGl0bGU9XCJyZXF1aXJlZFwiPio8XC9hYmJyPiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlcXVpcmVkX2ZpZWxkX25vdGUiOnsiYXR0cmlkIjoiMTc1MyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGFuIGFzdGVyaXNrICg8YWJiciBjbGFzcz1cInNxLWZvcm0tcmVxdWlyZWQtZmllbGRcIiB0aXRsZT1cInJlcXVpcmVkXCI+KjxcL2FiYnI+KS4iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MjIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19lbWFpbF9ub3RpZmljYXRpb25fZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzUiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsiaHRtbF9mb3JtYXQiOiI8cD48XC9wPiIsInRleHRfZm9ybWF0IjoiIiwidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJpbmNfYXR0YWNobWVudHMiOmZhbHNlLCJhc3NldF90b19zZW5kIjoiMCIsImRlc2lnbl90b19hcHBseSI6IjAiLCJsYXlvdXRfdG9fYXBwbHkiOiIwIiwic2VuZF9tYWlsX3RvX3R5cGUiOjAsImF0dGFjaG1lbnRzIjpbXX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiMTczMiIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6InJlZCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzE1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfaGNhcHRjaGEiOnsiYXR0cmlkIjoiNDk1MiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaGNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiNDk1MCIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6ImxpZ2h0IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhjYXB0Y2hhX3NpemUiOnsiYXR0cmlkIjoiNDk1MSIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6Im5vcm1hbCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJoY2FwdGNoYV9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjQ5NTMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhvbmV5cG90X25hbWUiOnsiYXR0cmlkIjoiMTcyOCIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJkZXRhaWxzIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhvbmV5cG90X2lkIjp7ImF0dHJpZCI6IjE3NDUiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiZGV0YWlscyIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJob25leXBvdF9jbGFzcyI6eyJhdHRyaWQiOiIxNzA1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6ImhpZGRlbiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJob25leXBvdF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MzgiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiRXJyb3Igc3VibWl0dGluZyB0aGlzIGZpZWxkIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY29yZF9pcF9hZGRyZXNzIjp7ImF0dHJpZCI6IjQ4MzgiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjZWlwdF9lbWFpbHNfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzciLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOiJhOjEzOntzOjExOlwiaHRtbF9mb3JtYXRcIjtzOjExNzQ6XCI8cCBzdHlsZT1cImJvcmRlcjogMHB4XCI+RGVhciAlcmVzcG9uc2VfMjMzMTZfcTElLDxcL3A+PHA+VGhhbmtzIGZvciBnZXR0aW5nIGluIHRvdWNoLiBXZSB2YWx1ZSB5b3VyIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyAmbmRhc2g7IHRoZXkgcGxheSBhbiBpbXBvcnRhbnQgcGFydCBpbiB0aGUgb25nb2luZyBkZXZlbG9wbWVudCBvZiByYWlzaW5nY2hpbGRyZW4ubmV0LmF1LjxcL3A+PHA+QWx0aG91Z2ggd2UgcmVhZCBldmVyeSBtZXNzYWdlIHdlIHJlY2VpdmUsIHdlIGNhbiZyc3F1bzt0IGFsd2F5cyByZXNwb25kIHRvIGFsbCBmZWVkYmFjayBpbmRpdmlkdWFsbHkuPFwvcD48cD48c3Ryb25nPldvcnJpZWQgYWJvdXQgeW91ciBjaGlsZCBvciBuZWVkIHNvbWUgc3VwcG9ydD88XC9zdHJvbmc+PFwvcD48cD5yYWlzaW5nY2hpbGRyZW4ubmV0LmF1IHByb3ZpZGVzIGdlbmVyYWwgaW5mb3JtYXRpb24gb25seS4gV2UgZG9uJnJzcXVvO3QgcHJvdmlkZSBwZXJzb25hbGlzZWQgYWR2aWNlLjxcL3A+PHA+SWYgeW91JnJzcXVvO3JlIGNvbmNlcm5lZCBhYm91dCBhIHBhcnRpY3VsYXIgaXNzdWUgZm9yIHlvdSBvciB5b3VyIGNoaWxkLCBpdCZyc3F1bztzIGJlc3QgdG8gc2VlayBhZHZpY2UgZnJvbSBhIHF1YWxpZmllZCBwcm9mZXNzaW9uYWwgb3Igc2VydmljZS48XC9wPjxwPllvdSBjYW4gY2FsbCB5b3VyIDxhIGhyZWY9XCJodHRwczpcL1wvcmFpc2luZ2NoaWxkcmVuLm5ldC5hdVwvZ3Jvd24tdXBzXC9zZXJ2aWNlcy1zdXBwb3J0XC9zZXJ2aWNlcy1mYW1pbGllc1wvaGVscGxpbmVzXCI+QXVzdHJhbGlhbiBzdGF0ZSBvciB0ZXJyaXRvcnkgcGFyZW50IGhlbHBsaW5lIG9yIGhvdGxpbmU8XC9hPi48XC9wPjxwPjxzdHJvbmc+SW5mb3JtYXRpb24gb24gY29udGVudCByZXVzZSBhbmQgbGljZW5zaW5nPFwvc3Ryb25nPjxcL3A+PHA+cmFpc2luZ2NoaWxkcmVuLm5ldC5hdSA8YSBocmVmPVwiaHR0cHM6XC9cL3JhaXNpbmdjaGlsZHJlbi5uZXQuYXVcL2Fib3V0LXVzXC9tZWRpYVwvRkFRcy1hYm91dC1jb250ZW50LXJldXNlXCI+ZmVhdHVyZXMmbmJzcDtmcmVxdWVudGx5IGFza2VkIHF1ZXN0aW9uczxcL2E+IG9uIGNvbnRlbnQgcmV1c2UgYW5kIGxpY2Vuc2luZy48XC9wPjxwPklmIHdlIHJlcXVpcmUgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGNvbW1lbnRzIHdlJnJzcXVvO2xsIGJlIGluIHRvdWNoLjxcL3A+PHA+S2luZCByZWdhcmRzLCA8YnIgXC8+VGhlIHJhaXNpbmdjaGlsZHJlbi5uZXQuYXUgdGVhbTxcL3A+XCI7czoxMTpcInRleHRfZm9ybWF0XCI7czoxMDAyOlwiVGhhbmtzIGZvciBnZXR0aW5nIGluIHRvdWNoLiBXZSB2YWx1ZSB5b3VyIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyBcdTIwMTMgdGhleSBwbGF5IGFuIGltcG9ydGFudCBwYXJ0IGluIHRoZSBvbmdvaW5nIGRldmVsb3BtZW50IG9mIHJhaXNpbmdjaGlsZHJlbi5uZXQuYXUuXHJcblxyXG5Ob3RlLCB0aGUgZmVlZGJhY2sgbGluZSBpcyBjbG9zZWQgZnJvbSAyMlwvMTJcLzIzIHVudGlsIDEwXC8xXC8yNCBhbmQgd2Ugd29uXHUyMDE5dCBiZSByZXNwb25kaW5nIHRvIGVtYWlscyBkdXJpbmcgdGhpcyBwZXJpb2QuXHJcblxyXG5BbHRob3VnaCB3ZSByZWFkIGV2ZXJ5IG1lc3NhZ2Ugd2UgcmVjZWl2ZSwgd2UgY2FuXHUyMDE5dCBhbHdheXMgcmVzcG9uZCB0byBhbGwgZmVlZGJhY2sgaW5kaXZpZHVhbGx5LiBcclxuXHJcbldvcnJpZWQgYWJvdXQgeW91ciBjaGlsZD9cclxucmFpc2luZ2NoaWxkcmVuLm5ldC5hdSBwcm92aWRlcyBnZW5lcmFsIGluZm9ybWF0aW9uIG9ubHkuIFdlIGNhblx1MjAxOXQgcHJvdmlkZSBwZXJzb25hbGlzZWQgYWR2aWNlLiBJZiB5b3UgaGF2ZSBhIHBhcnRpY3VsYXIgaXNzdWUgeW91XHUyMDE5cmUgY29uY2VybmVkIGFib3V0LCBpdFx1MjAxOXMgYmVzdCB0byBzZWVrIGFkdmljZSBmcm9tIGEgcXVhbGlmaWVkIHByb2Zlc3Npb25hbC5cclxuXHJcbk5lZWQgc29tZSBzdXBwb3J0P1xyXG5JZiB5b3UgbmVlZCBwYXJlbnRpbmcgYWR2aWNlIG9yIHN1cHBvcnQsIHlvdSBjYW4gY2FsbCB5b3VyIEF1c3RyYWxpYW4gc3RhdGUgb3IgdGVycml0b3J5IHBhcmVudGluZyBoZWxwbGluZS4gWW91IGNhbiBmaW5kIHRoZSBudW1iZXJzIGhlcmU6IGh0dHBzOlwvXC9yYWlzaW5nY2hpbGRyZW4ubmV0LmF1XC9ncm93bi11cHNcL3NlcnZpY2VzLXN1cHBvcnRcL3NlcnZpY2VzLWZhbWlsaWVzXC9oZWxwbGluZXMuXHJcblxyXG5JZiB3ZSByZXF1aXJlIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgeW91ciBjb21tZW50cyB3ZVx1MjAxOWxsIGJlIGluIHRvdWNoLlxyXG5cclxuS2luZCByZWdhcmRzLFxyXG5UaGUgcmFpc2luZ2NoaWxkcmVuLm5ldC5hdSB0ZWFtXHRcIjtzOjI6XCJ0b1wiO2E6MDp7fXM6MTE6XCJ0b19hc3NldGlkc1wiO2E6MDp7fXM6NDpcImZyb21cIjtzOjI3Olwibm9yZXBseUBwcmMtd2ViLnNxdWl6LmNsb3VkXCI7czo4OlwicmVwbHlfdG9cIjtzOjMwOlwicmNuZmVlZGJhY2tAcGFyZW50aW5ncmMub3JnLmF1XCI7czo3Olwic3ViamVjdFwiO3M6NDQ6XCJUaGFua3MgZm9yIGNvbnRhY3RpbmcgcmFpc2luZ2NoaWxkcmVuLm5ldC5hdVwiO3M6MTU6XCJpbmNfYXR0YWNobWVudHNcIjtiOjA7czoxMzpcImFzc2V0X3RvX3NlbmRcIjtzOjE6XCIwXCI7czoxNTpcImRlc2lnbl90b19hcHBseVwiO3M6MTpcIjBcIjtzOjE1OlwibGF5b3V0X3RvX2FwcGx5XCI7czoxOlwiMFwiO3M6MTc6XCJzZW5kX21haWxfdG9fdHlwZVwiO2k6MDtzOjExOlwiYXR0YWNobWVudHNcIjthOjA6e319IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2VpcHRfZmllbGQiOnsiYXR0cmlkIjoiMTc3OCIsInR5cGUiOiJhc3NldGlkIiwidmFsdWUiOiIyMzMxNjpxMyIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzgxIiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7Imh0bWxfZm9ybWF0IjoiPHA+PFwvcD4iLCJ0ZXh0X2Zvcm1hdCI6IiIsInRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaW5jX2F0dGFjaG1lbnRzIjpmYWxzZSwiYXNzZXRfdG9fc2VuZCI6IjAiLCJkZXNpZ25fdG9fYXBwbHkiOiIwIiwibGF5b3V0X3RvX2FwcGx5IjoiMCIsInNlbmRfbWFpbF90b190eXBlIjowLCJhdHRhY2htZW50cyI6W119LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2VsZWN0aXZlX2VtYWlscyI6eyJhdHRyaWQiOiIxNzgyIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFjdGlvbnMiOnsiYXR0cmlkIjoiMTc4MyIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJsb2ciOnsiYXR0cmlkIjoiMTc4NCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjZWlwdF9lbWFpbF9hdHRhY2htZW50cyI6eyJhdHRyaWQiOiIxNzg1IiwidHlwZSI6ImR5bmFtaWNfZmlsZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2lwaWVudF9lbWFpbF9hdHRhY2htZW50cyI6eyJhdHRyaWQiOiIxNzg2IiwidHlwZSI6ImR5bmFtaWNfZmlsZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN0YWZfZW1haWxfYXR0YWNobWVudHMiOnsiYXR0cmlkIjoiMTc4NyIsInR5cGUiOiJkeW5hbWljX2ZpbGUiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJuZXh0X3F1ZXN0aW9uaWQiOnsiYXR0cmlkIjoiMTcyNSIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjkiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicXVlc3Rpb25zIjp7ImF0dHJpZCI6IjE3NzEiLCJ0eXBlIjoic2VyaWFsaXNlIiwidmFsdWUiOnsiMSI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsiaXNfcmVxdWlyZWQiOnRydWUsIm5hbWUiOiJGaXJzdCBOYW1lIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImN1c3RfcmVxdWlyZWRfZXJyb3IiOiJQbGVhc2UgYWRkIGEgZmlyc3QgbmFtZSJ9fSwiMiI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsiaXNfcmVxdWlyZWQiOnRydWUsIm5hbWUiOiJMYXN0IE5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IlBsZWFzZSBhZGQgYSBsYXN0IG5hbWUifX0sIjMiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2VtYWlsX2FkZHJlc3MiLCJhdHRyaWJ1dGVzIjp7InRleHRfdHlwZSI6ImVtYWlsIiwiaXNfcmVxdWlyZWQiOnRydWUsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJjdXN0X3JlcXVpcmVkX2Vycm9yIjoiUGxlYXNlIGFkZCBhbiBlbWFpbCBhZGRyZXNzIiwibmFtZSI6IkVtYWlsIEFkZHJlc3MifX0sIjQiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3RleHQiLCJhdHRyaWJ1dGVzIjp7Im5hbWUiOiJQb3N0Y29kZSIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJ3aWR0aCI6IjIwIiwibWF4IjoiNCIsImV4dHJhIjoiY2xhc3M9XCJzcS1mb3JtLXF1ZXN0aW9uLXBvc3Rjb2RlXCIiLCJ0ZXh0X3R5cGUiOiJudW1iZXIifX0sIjUiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6Ik1lc3NhZ2Ugc3ViamVjdCIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJkZWZhdWx0IjpbIkdlbmVyYWwgZW5xdWlyeSJdLCJvcHRpb25zIjp7IkdlbmVyYWwgZW5xdWlyeSI6IkdlbmVyYWwgZW5xdWlyeSIsIkNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyI6IkNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyIsIlRlY2huaWNhbCBzdXBwb3J0IjoiVGVjaG5pY2FsIHN1cHBvcnQiLCJPdGhlciI6Ik90aGVyIn0sImVtcHR5X3RleHQiOiJTZWxlY3QgbWVzc2FnZSB0eXBlIn19LCI2Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJpc19yZXF1aXJlZCI6dHJ1ZSwibmFtZSI6Ik1lc3NhZ2UiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IlBsZWFzZSBhZGQgeW91ciBtZXNzYWdlIiwiaGVpZ2h0IjoiNSIsIm1heCI6IiJ9fX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJuYW1lIjp7ImF0dHJpZCI6IjE3MzYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiRm9ybSBDb250ZW50cyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImxvZ19zdWJtaXNzaW9ucyI6eyJhdHRyaWQiOiIxNzQ4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNob3dfcmVzdWx0cyI6eyJhdHRyaWQiOiIxNjkyIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9tYWluIjp7ImF0dHJpZCI6IjE3MTYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2JvZHljb3B5X3RoYW5rX3lvdSI6eyJhdHRyaWQiOiIxNzMwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9leGl0Ijp7ImF0dHJpZCI6IjE3NTUiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9jb25maXJtYXRpb24iOnsiYXR0cmlkIjoiMTY5MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9lcnJvcnNfbXNnIjp7ImF0dHJpZCI6IjE3NzAiLCJ0eXBlIjoid3lzaXd5ZyIsInZhbHVlIjoiPHAgY2xhc3M9XCJzcS1mb3JtLWVycm9ycy1tZXNzYWdlXCI+VGhlcmUgd2VyZSBlcnJvcnMgc3VibWl0dGluZyB0aGUgZm9ybS4gUGxlYXNlIGNvcnJlY3QgdGhlIG1hcmtlZCBmaWVsZHMgYW5kIHRyeSBhZ2Fpbi48XC9wPiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlcXVpcmVfY2FwdGNoYSI6eyJhdHRyaWQiOiIxNzE4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2xlbmd0aCI6eyJhdHRyaWQiOiIxNzUwIiwidHlwZSI6ImludCIsInZhbHVlIjoiNSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX3pvb20iOnsiYXR0cmlkIjoiMTcwMSIsInR5cGUiOiJmbG9hdCIsInZhbHVlIjoyLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9saW5rX3RleHQiOnsiYXR0cmlkIjoiMTc2NSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZWdlbmVyYXRlIHNlY3VyaXR5IGtleSIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9jb25maXJtYXRpb25fcGFnZSI6eyJhdHRyaWQiOiIxNzQwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzYXZlX2FuZF9leGl0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNjg2IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlNhdmUgYW5kIEV4aXQiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1bmF0dGFjaGVkX3BhZ2VfbmFtZSI6eyJhdHRyaWQiOiIxNzY5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlF1ZXN0aW9ucyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pc3Npb25fZXhwaXJ5X3RpbWUiOnsiYXR0cmlkIjoiMTcwNiIsInR5cGUiOiJkdXJhdGlvbiIsInZhbHVlIjowLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV90ZXh0Y29sb3VyIjp7ImF0dHJpZCI6IjE3MTEiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfYm9yZGVyY29sb3VyIjp7ImF0dHJpZCI6IjE2OTUiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF9idXR0b25fZXh0cmFzIjp7ImF0dHJpZCI6IjE3MjQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbl9leHRyYXMiOnsiYXR0cmlkIjoiMTcwNyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV91c2Vmb250Ijp7ImF0dHJpZCI6IjE3NTkiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfd2lkdGgiOnsiYXR0cmlkIjoiMTc3NiIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2hlaWdodCI6eyJhdHRyaWQiOiIxNzYxIiwidHlwZSI6ImludCIsInZhbHVlIjoiMzYiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmMiOnsiYXR0cmlkIjoiMTc2MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmNfY29sb3VyIjp7ImF0dHJpZCI6IjE3MjkiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjRDIwQTBBIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfaW5jbHVkZV91cHBlcmNhc2UiOnsiYXR0cmlkIjoiMTc0NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NzQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfbW9sbG9tIjp7ImF0dHJpZCI6IjE3MjciLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm1vbGxvbV9xdWVzdGlvbnNfdG9fY2hlY2siOnsiYXR0cmlkIjoiMTY4MiIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fdW5zdXJlX3N1Ym1pc3Npb25fdGV4dCI6eyJhdHRyaWQiOiIxNzM5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NjMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJkaXNhYmxlX2tleXdvcmRfcmVwbGFjZW1lbnRzIjp7ImF0dHJpZCI6IjE2ODQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9saW1pdCI6eyJhdHRyaWQiOiIxNzQzIiwidHlwZSI6ImludCIsInZhbHVlIjoiMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdWJtaXNzaW9uX2xpbWl0X3JlYWNoZWRfdGV4dCI6eyJhdHRyaWQiOiIxNjk5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pc3Npb24gbGltaXQgaGFzIGJlZW4gcmVhY2hlZCBvbiB0aGlzIGZvcm0uIE5vIG1vcmUgc3VibWlzc2lvbiB3aWxsIGJlIGFjY2VwdGVkLiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19pbmNvbXBsZXRlX3N1Ym1pc3Npb24iOnsiYXR0cmlkIjoiMTc1NiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZW1haWxfcSI6eyJhdHRyaWQiOiIxNjg5IiwidHlwZSI6ImFzc2V0aWQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9zdWJtaXRfYnV0dG9uX3RleHQiOnsiYXR0cmlkIjoiMTcxMyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJTdWJtaXQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZm9ybV9mb3JtYXQiOnsiYXR0cmlkIjoiMTY5NyIsInR5cGUiOiJ3eXNpd3lnIiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9pbmZvX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzUyIiwidHlwZSI6Ind5c2l3eWciLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF90b19wYWdlX3VybCI6eyJhdHRyaWQiOiIxNzU4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9yZWNhcHRjaGEiOnsiYXR0cmlkIjoiMTY5NiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjYXB0Y2hhX3YyX3RoZW1lIjp7ImF0dHJpZCI6IjE3NzIiLCJ0eXBlIjoic2VsZWN0aW9uIiwidmFsdWUiOiJsaWdodCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfdjJfc2l6ZSI6eyJhdHRyaWQiOiIxNzUxIiwidHlwZSI6InNlbGVjdGlvbiIsInZhbHVlIjoibm9ybWFsIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInRpbWVfcmVxdWlyZW1lbnQiOnsiYXR0cmlkIjoiMTczNCIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIxMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ0aW1lX3JlcXVpcmVtZW50X2Vycm9yX21lc3NhZ2UiOnsiYXR0cmlkIjoiMTc2MiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJwb3NzaWJsZSBzcGFtIGF0dGVtcHQgZGV0ZWN0ZWQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV9leHRyYV9hdHRyaWJ1dGUiOnsiYXR0cmlkIjoiMTcxOSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVzdHJpY3RlZF9zdWJtaXNzaW9uX2FjY2VzcyI6eyJhdHRyaWQiOiIxNzA0IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2lwaWVudF9lbWFpbHNfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzkiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsiaHRtbF9mb3JtYXQiOiI8dGFibGUgaWQ9XCJ0YWJsZTQ0MzgwXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPjx0aGVhZD48dHI+PHRoIGlkPVwidGFibGU0NDM4MHIxYzFcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7XCI+U3ViamVjdDxcL3RoPjx0aCBpZD1cInRhYmxlNDQzODByMWMyXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPkRhdGU8XC90aD48dGggaWQ9XCJ0YWJsZTQ0MzgwcjFjM1wiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj5Qb3N0Y29kZTxcL3RoPjx0aCBpZD1cInRhYmxlNDQzODByMWM0XCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlJlZ2FyZHM8XC90aD48dGggaWQ9XCJ0YWJsZTQ0MzgwcjFjNVwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj5OYW1lPFwvdGg+PHRoIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBpZD1cInRhYmxlNDQzODByMWM2XCI+RW1haWwgYWRkcmVzczxcL3RoPjxcL3RyPjxcL3RoZWFkPjx0Ym9keT48dHI+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzFcIj4lcmVzcG9uc2VfMjMzMTZfcTUlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzJcIj4lZm9ybV9zdWJtaXNzaW9uX3RpbWVfc2hvcnQlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzNcIj4lcmVzcG9uc2VfMjMzMTZfcTQlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzRcIj4lZ2xvYmFsc19wYWdlX3JlZmVycmVyJTxcL3RkPjx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7XCIgaGVhZGVycz1cInRhYmxlNDQzODByMWM1XCI+JXJlc3BvbnNlXzIzMzE2X3ExJSAlcmVzcG9uc2VfMjMzMTZfcTIlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzZcIj4lcmVzcG9uc2VfMjMzMTZfcTMlPFwvdGQ+PFwvdHI+PFwvdGJvZHk+PFwvdGFibGU+PHAgc3R5bGU9XCJib3JkZXI6IDBweFwiPjxzdHJvbmcgc3R5bGU9XCJib3JkZXI6IDBweFwiPjxiciBcLz5NZXNzYWdlOjxcL3N0cm9uZz4gPGJyIFwvPiVyZXNwb25zZV8yMzMxNl9xNiU8XC9wPjxwIHN0eWxlPVwiYm9yZGVyOiAwcHhcIj48c3Ryb25nIHN0eWxlPVwiYm9yZGVyOiAwcHhcIj5TdWJtaXNzaW9uIFRpbWU6PFwvc3Ryb25nPiAlZm9ybV9zdWJtaXNzaW9uX3RpbWUlPGJyIFwvPjxzdHJvbmcgc3R5bGU9XCJib3JkZXI6IDBweFwiPklQIEFkZHJlc3M6PFwvc3Ryb25nPiAlZm9ybV9zdWJtaXNzaW9uX2lwX2FkZHJlc3MlPFwvcD4iLCJ0ZXh0X2Zvcm1hdCI6IiIsInRvIjpbInJjbmZlZWRiYWNrQHBhcmVudGluZ3JjLm9yZy5hdSJdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiJub3JlcGx5QHByYy13ZWIuc3F1aXouY2xvdWQiLCJyZXBseV90byI6IiVyZXNwb25zZV8yMzMxNl9xMyUiLCJzdWJqZWN0IjoicmFpc2luZ2NoaWxkcmVuLm5ldC5hdSAtIHdlYnNpdGUgZmVlZGJhY2siLCJpbmNfYXR0YWNobWVudHMiOmZhbHNlLCJhc3NldF90b19zZW5kIjoiMCIsImRlc2lnbl90b19hcHBseSI6IjAiLCJsYXlvdXRfdG9fYXBwbHkiOiIwIiwic2VuZF9tYWlsX3RvX3R5cGUiOjAsImF0dGFjaG1lbnRzIjpbXX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2ZpZWxkIjp7ImF0dHJpZCI6IjE3ODAiLCJ0eXBlIjoiYXNzZXRpZCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX19LCJtZXRhZGF0YSI6W119","formName":"Tell us what you think","formUrl":"https://raisingchildren.net.au/tell-us-what-you-think","formId":"23315","formContentId":"23316","thankYou":"VGhhbmtzIGZvciBwcm92aWRpbmcgZmVlZGJhY2sgb24gdGhpcyBhcnRpY2xlLiBXZSB2YWx1ZSB5b3VyIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyDigJMgdGhleSBwbGF5IGFuIGltcG9ydGFudCBwYXJ0IGluIHRoZSBvbmdvaW5nIGRldmVsb3BtZW50IG9mIHJhaXNpbmdjaGlsZHJlbi5uZXQuYXUuIFBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBhbHRob3VnaCB3ZSByZWFkIGVhY2ggYW5kIGV2ZXJ5IG1lc3NhZ2UsIHdlIGNhbid0IGFsd2F5cyByZXNwb25kIHRvIHlvdXIgZmVlZGJhY2sgaW5kaXZpZHVhbGx5Lg==","isActive":false,"template":"FeedbackForm"},{"title":"Acknowledgements","content":"<p>Our content is regularly reviewed for quality and currency. The last review of this article was by Dr Simone Craig, GP and Clinical Lecturer, Department of General Practice and Primary Care, University of Melbourne. The article has also received <a href=%22https://raisingchildren.net.au/about-us/our-experts-partners/scientific-advisory-board%22>Scientific Advisory Board</a> review.</p>","isActive":false,"cleanStringQuotes":true},{"title":"References","content":"<p>Jatrana, S., Hasan, M., Mamun, A., & Fatima, Y<em>.</em> (2021). Global variation in hand hygiene practices among adolescents: The role of family and school-level factors. <em>International Journal of Environmental Research and Public Health</em>, <em>18</em>(9). Article 4984. https://doi.org/10.3390/ijerph18094984.</p><p>Muller, P.M. (2016). Measuring hand hygiene when it matters. <em>The Lancet, 16</em>(12), 1306-1307. https://doi.org/10.1016/S1473-3099(16)30335-8.</p><p>Zhang, L., Waselewski, M., Nawrocki, J., Williams, I., Fontana, M., & Chang, T. (2023). Perspectives on dental health and oral hygiene practice from US adolescents and young adults during the COVID-19 pandemic. <em>PLoS ONE</em>, <em>17</em>(1), 1-10. https://doi.org/10.1371/journal.pone.0280533.</p>","isActive":false,"cleanStringQuotes":true},{"title":"External links","content":[],"isActive":false,"template":"ExternalLinks"}]}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `articleUtilities` with id `articleUtilities-23326`") }</script></div> <!-- End container id #articleUtilities-23326 'articleUtilities' --> <script>console['info']("Complete 'articleUtilities' for container #articleUtilities-23326")</script> </div> </main> </div> <div class="col-sm-12 col-lg-3 section-sidebar"> <div class="content-viewport"> <!-- Class to hide for mobile viewports --> <div class="helpful-summary-rhs"><script>console['info']("Begin 'transducer' for container #helpful-summary-23299 helpfulSummary")</script><script>console['info']("Complete 'transducer' for container #helpful-summary-23299 helpfulSummary")</script><script>console['info']("Begin 'helpfulSummary' for container #helpful-summary-23299")</script><!-- Begin container id #helpful-summary-23299 'helpfulSummary' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/helpful-summary.js?v=2023-04-24T035717.998Z" id="helpfulSummary"></script></div><div id="helpful-summary-23299" class="helpful-summary container-template"></div><script>try {sq.helpfulSummary('helpful-summary-23299', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"helpful-summary","namespace":"helpful-summary","assetid":"23299","id":"helpful-summary-23299","camel":"helpfulSummary","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/helpful-summary.js","containerType":"div","counter":2714}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `helpfulSummary` with id `helpful-summary-23299`") }</script></div> <!-- End container id #helpful-summary-23299 'helpfulSummary' --> <script>console['info']("Complete 'helpfulSummary' for container #helpful-summary-23299")</script></div><script>console['info']("Begin 'transducer' for container #article-grid-44977 articleGrid")</script><script>console['info']("Complete 'transducer' for container #article-grid-44977 articleGrid")</script><script>console['info']("Begin 'articleGrid' for container #article-grid-44977")</script><!-- Begin container id #article-grid-44977 'articleGrid' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-grid.js?v=2023-04-24T035717.998Z" id="articleGrid"></script></div><div id="article-grid-44977" class="article-grid container-template"></div><script>try {sq.articleGrid('article-grid-44977', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"article-grid","namespace":"article-grid","assetid":"44977","id":"article-grid-44977","camel":"articleGrid","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-grid.js","containerType":"div","type":"","borderTop":true,"thumbnailAspectRatio":"4-3","howManyColsDesktop":"12","hideDescription":true,"itemVertically":false,"timeOnVideoMark":false,"showContainer":true,"title":"You might also like","defaultThumbnailURL":"https://raisingchildren.net.au/__data/assets/image/0006/40110/placeholder-wide.jpg","defaultThumbnailSquareURL":"https://raisingchildren.net.au/__data/assets/image/0014/40109/placeholder-narrow.jpg","displayChildItems":false,"childItems":[],"articleRootNode":"","items":[{"description":"Positive body image and self-esteem go together. Help teens with their body image by talking, focusing on the whole person, and being a positive role model.","img":"https://raisingchildren.net.au/__data/assets/image/0020/48611/varieties/small.jpg","video":"","videoTime":"","content":"Body image: pre-teens and teenagers","link":"https://raisingchildren.net.au/teens/healthy-lifestyle/body-image/body-image-teens"},{"description":"You can help children cope with puberty by giving them facts and reassurance. Healthy lifestyle choices help children feel OK about their changing bodies.","img":"https://raisingchildren.net.au/__data/assets/image/0022/48109/varieties/small.jpg","video":"","videoTime":"","content":"Puberty: helping pre-teens and teenagers handle the changes","link":"https://raisingchildren.net.au/teens/development/puberty-sexual-development/puberty-helping-your-child"},{"description":"Pre-teens and teenagers naturally want more privacy – but you still need to know what’s going on. Trust and monitoring are the keys to finding the balance.","img":"https://raisingchildren.net.au/__data/assets/image/0033/47976/varieties/small.jpg","video":"","videoTime":"","content":"Privacy, monitoring and trust: pre-teens and teenagers","link":"https://raisingchildren.net.au/teens/communicating-relationships/family-relationships/privacy-trust-teen-years"},{"description":"Difficult conversations with teens might cover sex, drugs, mental health, school and more. These conversations go well if you’re prepared, calm and open.","img":"https://raisingchildren.net.au/__data/assets/image/0015/48012/varieties/small.jpg","video":"","videoTime":"","content":"Difficult conversations with pre-teens and teenagers","link":"https://raisingchildren.net.au/teens/communicating-relationships/tough-topics/difficult-conversations-with-teens"},{"description":"Like all teens, autistic teens need to take extra care with personal hygiene. Visual supports, social stories and video-modelling can help them learn how.","img":"https://raisingchildren.net.au/__data/assets/image/0025/47662/varieties/small.jpg","video":"","videoTime":"","content":"Personal hygiene for autistic pre-teens and teenagers","link":"https://raisingchildren.net.au/autism/health-wellbeing/toileting-hygiene/personal-hygiene-autistic-teens"},{"description":"Start early with preparing autistic children for periods. It’s good to cover what periods are, period underpants, pads and tampons, and emotional symptoms.","img":"https://raisingchildren.net.au/__data/assets/image/0023/47660/varieties/small.jpg","video":"","videoTime":"","content":"Periods: preparing autistic children","link":"https://raisingchildren.net.au/autism/development/physical-development/periods-and-autism"}],"video":false}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `articleGrid` with id `article-grid-44977`") }</script></div> <!-- End container id #article-grid-44977 'articleGrid' --> <script>console['info']("Complete 'articleGrid' for container #article-grid-44977")</script> </div> </div> </div> </div> <!-- /end src-matrix/nested-content/main/global-design-body-main.html --> <!-- begin src-matrix/nested-content/footer/global-design-footer.html --> <!-- Show Footer True d--> <footer class="footer" id="global-footer"><div><div class="container"><div class="footer-container footer-container--flex"><div class="footer-container footer-container--lhs"><div class="footer-lhs__group footer-lhs__group--supported"><h3 class="footer-lhs__label">Supported By</h3><ul class="footer-lhs__list"><li class="footer-lhs__item"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0015/23262/logo-gov.svg" alt="Department of Social Services"/></li></ul><div class="footer-lhs__summary"><div id="content_container_24285"> <p>Raising Children Network is supported by the Australian Government. Member organisations are the Parenting Research Centre and the Murdoch Childrens Research Institute with The Royal Children’s Hospital Centre for Community Child Health.</p> </div></div></div><div class="footer-lhs__group footer-lhs__group--organisation"><h3 class="footer-lhs__label">Member Organisations</h3><ul class="footer-lhs__list"><li class="footer-lhs__item"><a class="footer-lhs__link" href="https://parentingrc.org.au" title="Parenting Research Centre"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0017/23264/PRC_Stacked_MasterLogo_RGB.svg" alt="Parenting Research Centre"/></a></li><li class="footer-lhs__item"><a class="footer-lhs__link" href="https://www.rch.org.au" title="The Royal Children's Hospital Melbourne"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0016/23263/logo-chm.svg" alt="The Royal Children's Hospital Melbourne"/></a></li><li class="footer-lhs__item"><a class="footer-lhs__link" href="https://www.mcri.edu.au/" title="Murdoch Children's Research Institute"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0018/23265/logo-mcri.svg" alt="Murdoch Children's Research Institute"/></a></li></ul></div></div><div class="footer-container footer-container--links" role="tablist" aria-live="polite"></div><div class="footer-container footer-container--rhs"><div class="footer-follow"><p class="footer-follow__label">Follow us on social media</p><ul class="footer-follow__list"><li class="footer-follow__item"><a href="https://www.facebook.com/RaisingChildrenNetwork" class="footer-follow__link"><span class="social-icon social-icon--fb"></span><span class="sr-only">Facebook</span></a></li><li class="footer-follow__item"><a href="https://www.instagram.com/raisingchildren.net.au" class="footer-follow__link"><span class="social-icon social-icon--in"></span><span class="sr-only">Instagram</span></a></li><li class="footer-follow__item"><a href="https://www.youtube.com/user/RaisingChildren2011" class="footer-follow__link"><span class="social-icon social-icon--yt"></span><span class="sr-only">YouTube</span></a></li><li class="footer-follow__item"><a href="https://au.linkedin.com/company/raising-children-network" class="footer-follow__link"><span class="social-icon social-icon--linked"></span><span class="sr-only">LinkedIn</span></a></li></ul></div><div class="footer-forms"><form method="get" role="search" action="https://raisingchildren.net.au/search" id="footer__search-form" class="footer-search"></form><form method="post" action="https://raisingchildren.net.au/subscribe-to-our-emails" encType="multipart/form-data" class="footer-subscribe" id="footer_form_email_49761"><legend class="footer-subscribe__legend">Sign up now to get free parenting news delivered to your inbox.</legend><div class="footer-subscribe__wrapper"><label for="subscribe_email_input" class="sr-only">E-mail address</label><input type="email" id="undefined" name="undefined" value="undefined" title="Enter your email to get started" class="footer-subscribe__input" placeholder="Enter your email to get started" onChange="function (e) { return actions.onChangeSubscribe(e); }" autoComplete="off"></input><button id="footer_form_email_49761_submit" type="submit" title="Sign up" class="footer-subscribe__submit">Subscribe</button></div></form></div></div></div></div><div class="footer-container footer-container--acknowledgement"><div class="footer-acknowledgement__content"><div class="footer-flags"><div class="footer-flags__item-wrapper"><img src="https://raisingchildren.net.au/__data/assets/image/0028/98344/Aboriginal-flag-50px-height.jpg" alt="Aboriginal flag (c) WAM Clothing" class="footer-flags__item"/></div><div class="footer-flags__item-wrapper"><img src="https://raisingchildren.net.au/__data/assets/image/0029/98345/TSI-flag-50px-height.jpg" alt="Torres Strait Islands flag" class="footer-flags__item"/></div></div><div class="footer-acknowledgement">At raisingchildren.net.au we acknowledge the Traditional Custodians of the land on which we live, gather and work. We recognise their continuing connection to land, water and community. We pay respect to Elders past and present.</div></div></div><div class="footer-container footer-container--copyrights"><div class="footer-copyrights__content"><ul class="footer-links"><li class="footer-links__item"><a href="/legal/privacy" class="footer-links__link">Privacy statement</a></li><li class="footer-links__item"><a href="/legal/terms-of-use" class="footer-links__link">Terms of use</a></li></ul><div class="footer-copyrights"><p>© 2006-2024 Raising Children Network (Australia) Limited. All rights reserved.</p><p>Warning: This website and the information it contains is not intended as a substitute for professional consultation with a qualified practitioner.</p></div></div></div></div></footer> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/global-footer.js?h=3376513"></script> <script> (function(sq){ sq.state.footer = {"footerLinks":[{"asset_name":"Privacy statement","asset_url_path":"/legal/privacy"},{"asset_name":"Terms of use","asset_url_path":"/legal/terms-of-use"}],"callouts":{"supportedBy":[{"asset_name":"Department of Social Services","asset_redirect_url":"","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0015/23262/logo-gov.svg","asset_url":"","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0015/23262/logo-gov.svg"}],"supportedBySummary":"\r\n<div id=\"content_container_24285\">\r\n<p>Raising Children Network is supported by the Australian Government. Member organisations are the Parenting Research Centre and the Murdoch Childrens Research Institute with The Royal Children’s Hospital Centre for Community Child Health.</p>\r\n</div>\r\n","memberOrganisations":[{"asset_name":"Parenting Research Centre","asset_redirect_url":"https://parentingrc.org.au","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0017/23264/PRC_Stacked_MasterLogo_RGB.svg","asset_url":"https://parentingrc.org.au","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0017/23264/PRC_Stacked_MasterLogo_RGB.svg"},{"asset_name":"The Royal Children's Hospital Melbourne","asset_redirect_url":"https://www.rch.org.au","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0016/23263/logo-chm.svg","asset_url":"https://www.rch.org.au","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0016/23263/logo-chm.svg"},{"asset_name":"Murdoch Children's Research Institute","asset_redirect_url":"https://www.mcri.edu.au/","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0018/23265/logo-mcri.svg","asset_url":"https://www.mcri.edu.au/","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0018/23265/logo-mcri.svg"}]},"footerMenuBlocks":["a23224","a23232","a23240"]}; sq.ready( function() { return sq.siteTree }, function () { sq.globalFooter('global-footer', Object.assign({}, sq.state.site, {lineage: sq.state.page.lineage}, sq.state.footer, { siteTree: sq.siteTree, view: 'GlobalFooterInner' })); } ) })(sq); </script> <script>console['info']("Begin 'transducer' for container #glossary-23597 glossary")</script><script>console['info']("Complete 'transducer' for container #glossary-23597 glossary")</script><script>console['info']("Begin 'glossary' for container #glossary-23597")</script><!-- Begin container id #glossary-23597 'glossary' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/glossary.js?v=2023-04-24T035717.998Z" id="glossary"></script></div><div id="glossary-23597" class="glossary container-template"></div><script>try {sq.glossary('glossary-23597', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"glossary","namespace":"glossary","assetid":"23597","id":"glossary-23597","camel":"glossary","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/glossary.js","containerType":"div","glossaryJson":"https://raisingchildren.net.au/_webservices/json/glossary.json","convert":true}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `glossary` with id `glossary-23597`") }</script></div> <!-- End container id #glossary-23597 'glossary' --> <script>console['info']("Complete 'glossary' for container #glossary-23597")</script> <!-- /end src-matrix/nested-content/footer/global-design-footer.html --> <!-- <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5a2a25a975ec241c" async="async"></script> --> </div> </div> </body> </html>