@wayke-se/components-react 3.3.1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-node/index.js +75 -438
- package/dist-node/index.js.map +1 -1
- package/dist-src/components/DocumentList/index.js +23 -0
- package/dist-src/components/{Pdf → DocumentList}/wrapper.js +1 -1
- package/dist-src/components/Heading/index.js +3 -5
- package/dist-src/layouts/searchItem/Documents.js +44 -0
- package/dist-src/layouts/searchItem/index.js +2 -9
- package/dist-types/@types/codegen/types.d.ts +2 -0
- package/dist-types/components/{Pdf → DocumentList}/index.d.ts +3 -3
- package/dist-types/components/{Pdf → DocumentList}/wrapper.d.ts +1 -1
- package/dist-types/components/Heading/index.d.ts +5 -0
- package/dist-types/layouts/searchItem/Documents.d.ts +7 -0
- package/dist-web/index.js +64 -22
- package/dist-web/index.js.map +1 -1
- package/package.json +1 -1
- package/dist-src/components/Pdf/index.js +0 -11
package/dist-node/index.js
CHANGED
|
@@ -467,6 +467,7 @@ const Wrapper$3 = styled__default.div.attrs(() => ({
|
|
|
467
467
|
`}
|
|
468
468
|
`;
|
|
469
469
|
|
|
470
|
+
// Adds element only visible to screen readers
|
|
470
471
|
const SrOnly = styled__default.div`
|
|
471
472
|
position: absolute;
|
|
472
473
|
width: 1px;
|
|
@@ -554,15 +555,14 @@ const COLOR_BEIGE = {
|
|
|
554
555
|
export const DEFAULT_PLACEHOLDER_IMAGE =
|
|
555
556
|
'https://cdn.wayke.se/wui/images/placeholders/placeholder_product_card.jpg';
|
|
556
557
|
*/
|
|
557
|
-
|
|
558
558
|
const DEFAULT_PLACEHOLDER_IMAGE = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//CABEIAhwDKgMBEQACEQEDEQH/xAAeAAEBAQACAwEBAQAAAAAAAAABAAIGCAUHCQMECv/aAAgBAQAAAAD/AHWyVQpVTFIiUjCg0MVSJIiWspVVSU2WpKSqpEkmJhHOqIakRymhoRGjWZhKaiZy1VFUwlNUTCOWNFUwlCw0TEbw1VJUwlSSMIk1ZaRqNZmDQjCWsyUjFSIiUxJU0lUJIjRSMNnUJNRJohKkRqiRKkSqqSpoYcsKJTnRVVVVUaEqmIZEQ0Q1VIiVVVMU0GqERErWWJyoLCJJU1RI1CMVMU51CVDIwxUiUMxVSQpIxDUwkNMU50MJOWmJEkjRUi5RomKoWJsswkwiIjVVVCIlNFIxTCayxIxSVVU0VNEiCg1VUhoqqqmJEmEYaKGmy0jRJJVUlMTZaqpipK1lDVQ0giTCUjQk1CTFUlUjFJNUUiIlSTGgmhikRJhI0VUaHOikGpypOZpy0k0TE1UJVJSUlMUw1DEww1QiJVIiNUVIwjnUWszE1UJIwjCIw0MUNJVVUlVVDSVINVJUJoc6hGyznQiSTFJVVU0VMSNBomqhHKiNQ1QlSNDCMCwzZSqpqhEYkkmJsqSTFI5TQKVUg1VUwjm0VVSSVIkaJKaiFEpEaqopE1lKYqmGNFEwlJTEiUlIyRUxWgShmKSmKmEpKTWWHK1DZUkrWUqkSqRhFChSahKYSpK0VDnQkkw0VJI0MUwwuaay1UpEiTE0JIxJM5mKSpKkQ0MIaikNFIWokqmhy0lVDVVUlVGoSRKmywtEwxS5nOhJoYjQ0NVVCIlTQ1DQ0TQkjQxTQxVVUjlaKqqpKctUNVNnRTlqqmxsYnKlVUlVGiqGSS0QxSDTRooYmiYphEhmJoqkRqqrMpJTnUMU5aYRGKqpKpJBRJImYkqSRy1JVUlVGopKaKSkRqiqmqGKkpJhERGhqhKaETRVFSNCNQ0NGstGsw05akkqhqSkSYpKSGYRJESSRKqqqjQiJVSVJNQiNQiUw1DFSNCSSJSOdEwwkkxMhMJMUuZc0aiYNFVVMTlSRJy0lIwaEQtUSJJVNljRRLAzCVoJipqhoaGhKpJGEYphJikc7KqEas6hcsWs0jQlVMTlqhqjQjnQwLFJDMVU5ZEpKRipoqHWNWdUTWdFI1VUMJLmYpoRSqc1DQmimiarOipophqEmKYk0VFMVSVSIlTRSVXhenn5OWoYmNdlPZtVUxIlTCNApSUaKYaESSSmLRE0UkmuD/PNGKqqY7ddisyNDArmpqNZREkYaKkYpGJKkSGkpJHg3z1YYaqie3fYaSmJJI1FVJTCIlNQ1FVMRopGJKaoR4N89amJSJjt32IJqhJhhJJKpqqKkRIlKmiqSYaKRpOD/PRqPK8gOLfy0Jdu+w7FIlGqKqkhkqGRy0jDDFWiGiaEYpK1wX56t5/s97T5hs/D1b119QoXbrsPNUVMMSSVSIwxSSJVTEaqipoYYYpNcF+e1d8faWatFwP1J1l8ddu+w5NAsVMMUiUiUiNRSMJMMSTQmso1FWuC/PV/T6LcoI1Tl66dR3t12INZSmJpzSNFIxJM5pikqqq1mrOqoly1UmuC/PW/Tsf2U876C4dGva/tX171w9HHbzsMjFVUlVUSwxVJSTQlMI0NQkw0Ukk8G+eui51zz0VFeT93enPAN267EFJSNCTVUTlYkmK1lonLVVJVSVTDQla4N89GqqhETt32G1CIjAoaEqqFqKmNAkjRNCIkuamoYk1wX56sI0NOa7d9iCkmiknLoKphKYaokRgaSqqqSGSqSNcH+e2WmKmE3227EjElNRVSUkxMSRoqpJikNQlNUIkjDXiurH46g0IiVdgfYAxJNDCIjZ0IlJNDFSJTVFI0JSIwaERHOijRNFVVJMSTDRUlNE0JoJGomGikRipiRoRzqhJESRoaGiZy0SIjFTRM5RGomoREpEkqqqqqRopqJKpzoNE2dCVUhoaEYkYmKqkqc6EYkiWHOoqkmKkayjMJTDCVJUw1QaDRVTDEjlGSQ0TVFSMJNCUlIiNDnUJGqoSkkRGKRhoaoqYmKjQlIxVNlSjUVSUmssUiVSSFqik1mtBVUlIpEwiSI0MSNFJUbIREREYkqms6qoqYSaoqpoYmrLaBEmRA0VTlSpEaoaEpokkpipGESjUVVaBJqoanNSMIaEpBqaEmEaGKmJikmGEaJKpoYRJiNCMMVrKUlDTUVNDFNlmyuWmJJzqy1OdZ0azJSJaKGJohkYSc6KRJikaqKRqGKYkSkRJJNZSs/pmqpEpJEqmhipJJhEqqRyzlpImpiqSpcpIiVCkxSNVVRSUlJTRSSUw0VC1VQiJUxMVNEw51JFVMUMkaJJKqGREqkqmJhhESpKSScrnUhVIKI2dRVSNZZiSFNFCJNJCaIqkpqiXLQxNCazNGs1SMVVClRopiSkZyxUjA1VUiSJSVVVQ0lUxQzZ0IwwiUjCNCOdDUSNZ1UMVSgiJIwjCSMJoK0Q0TRRoRIZHNqKSqqGSqSpJJKpiRJJKkRy1VMJJTmakmJGipEYphKaoQ0Uw51RMVNDUaCmGKRDQuWKqhSkRKpKSqSYJpiqc6IWBRERBqpKkqhYpESqRGEZIaqqEYpEkc6EmiYYaGJqoRiRhhEkkYqqazopEpoREYqkkpKnLSMVUwxTUVGqJoQaSjRTUJNRTFoc0jRVTFTCIiJMMSUlJUkiSIiGiTQZ1WspJKEwKJGio1FTZWKqpIWxponNscWssSNayWs7s0X//EABoBAQACAwEAAAAAAAAAAAAAAAABBQIEBgP/2gAIAQIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcfZEwJAwnGAAAAAAAAAAAAABHnz3mAAhfboAAAAAAAAAAAAAavJgAB0FsAAAAAAAAAAAAAI1uTAAJi/twAAAAAAAAAAAABGtycwMTPGSYX9uAAAAAAAAAAAAAGryYTn7PFhAm+twAAAAAAAAAAAABGtyaNi63vfFjp1OhiTf24AAAAAAAAAAAAAavJo6nfgRnjpadR4r+3AAAAAAAAAAAAAEa3Jsuw9YmBhn70PPZ31uAAAAAAAAAAAAAI1uTellfZ1erBv2lZV1kX9uAAAAAAAAAAAAAI1uTT57uxX+Q9rOu8cov7cAAAAAAAAAAAAANXkwAAv7cAAAAAAAAAAAAARrclIAmCYv7cAAAAAAAAAAAAANfjpIkAZZX9qAAAAAAAAAAAAAIiixAASsd8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//EABwBAQACAgMBAAAAAAAAAAAAAAABBwIGBAUIA//aAAgBAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOcAAGeAAAAAAAAAAAAAAZcy5fqRJEgY1nqoAAAAAAAAAAAAAjv/RcgAMlNVwAAAAAAAAAAAAAI7/0XIAmJjJTVcAAAAAAAAAAAAACO/8ARciZjFMwjNTVcAAAAAAAAAAAAACNg9FzExl1nEnseb85MlNVwAAAAAAAAAAAAAI7/wBF5fPh1VqPVYTyNjsvc0ypquAAAAAAAAAAAAABGwei5efdXgTjn3222lzVNVwAAAAAAAAAAAAAI7/0XOHm7qoEZ4Isy4lNVwAAAAAAAAAAAAAI2D0Vl863qzhWD3Q1HUtlsewopquAAAAAAAAAAAAABGweissXQ6/vv0HC0Xded9FNVwAAAAAAAAAAAAAI7/0XlAAGSmq4AAAAAAAAAAAAADv/AEWAAjLOmK4AAAAAAAAAAAAAGOw+jMwiUSDj1HWoAAAAAAAAAAAAAnkW1nBJCUD6Vtr4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/xABIEAAABAICCwsICQUBAAAAAAABAgMEABEFUwYSFRYhQVFgdKPSEBMgMTQ1cYGTs8EiMkBSVGGRkiMwM5ShsLHh8BRCYoKi0f/aAAgBAQABPwL8wdcqg3brrynvSRjyyyxdcDT1IiPkmSIGTeSGl1jhi7lJVqXYEi7lJVqX3ckXcpKtS7AkXcpKtS7AkXcpKtR7AkXcpKtS+7ki7lJ1qXYEi7lJ1qXYEi7lJVqXYEi7lJVqX3ckXcpKtS7AkXcpKtS7AkXcpKtS7AkXcpKtS7AkXcpKtS7AkXdpLGql2CcUU+M/bnUUKBVElLQ1r5ppltrYAxZqUnzc+0Y/h6FY3yZ1pJe6DNSkubn2jn8PQrG+TOtJL3QZqUnzc+0ZTw9Csb5M60kvdBmpSfNz7Rj+HCmH844Iisr9miofoIaAo6kDcTNf5f3gaOpAvGzXD/X94MQ5MByHIIYjFl+IhL6ixzkzrSS90GalJ83PtGP4cBs2VdqgikWZh4xxEDKbJCNjzcv26iig4wL5Bf0GYQjR7ND7Nun0mC3H/uce4MAZAwB+G6YpThI5SnDIcoG/WcOKFZLzECCkf1kxl12spQ6oZ02mYn06eVMBtwD3k/8AOFY5yZ1pJe6DNSkubn2jKeHAodFNJgicpQtli74oaXlCYcQj6pcX1K9GMnAiKiBQMPGYnkG65Q4sdJIRarGtvUVla9AHDCEKJHROZJUokUL5xf3xgO7Y3yZ1pJe5DNSk+bn2jH8N0MIgGXB8YYpGQZt0TytiJlA0uKfuy/Vfz3xT7QVEyuygH0ZZK5RARACy6N2xzkzrSS90GalJ83PtHU8N0BkIDkGfwgLIzyCbYswCWA4y+ENlyOUE1ieaoUBkGGRsYdJR3H1N/wBKuZBNMFbSVsa3l5eTqi+NT2YPni+M/sofPF8Z/ZQ+eL4z+yh88UZSYUhvhRICSichtAGdsQeM3UO5ST8GCQGtQOoc0iJiMph/cPQEO6bUdNzt95KQDyma2mIYZ4Phu2N8mdaSXugzUpPm59o6nhwWdIuWMwSEBIbzkz4S9IeqaFqfdqEtEyJozwCcJmN1TlKBw4RwiOERHGOMevgpLKIKFVRMJFC8Rv1DoGL4XNrIUURNlwgHyw4cqulBVWNbG4shQL6pS4g4FjnJnWkl7kM1KT5ufaMp4ehWN8mdaSXugzUpPm59ox/D0KxvkzrSS90GalJc3PtHP4ehWN8mdaSXugzUXSBdFVE3mqkEgj05IGx1zPyHCEv8t8AesAKIRe67r22t2Ivdd+0NtbsRe67r22t2Ivdd17bW7MXuu69trdiL3Xle21uxF7ryvba3Yi913Xttbsxe67r22t2Ivdd17bW7EXuu69trdmL3Xde21uxF7ruvba3Yi913XttbsRe67r22t2YvcdV7fW7EUcxBgiZO2tzHPvhzYraVrgDJL8m6/nXH/8QAKhAAAQAGCQUBAQAAAAAAAAAA8AABEBEgMCExQEFRYXGB8ZGxwdHhoVD/2gAIAQEAAT8hbdBowfYDOUGM4NJ/uI3tmreCmyG9iNIvUWDAxY6xhtI5afJZXApoZyw0aqTShTAGsHMBQw+xmzA6QipBmw2ThgbxmjTSyOj3znY/z1tLov1nNu9fvuMMpJqzpYB7OkHRpgyhDhm7Dm0HuPeM3jFRHxHNDKH3BjBvZvVudJDOyBTYgyQNWnEzduV3dDJPkB8YGSHMIZywyh9yCizbyvb0+zTJodLP0PMBvZNZA6whXEGDOkPVgbyDOV5Y6A2gNGBlAVlcrow6xGUnoxzDeH8TWT5sIpoZWQFzvlgDFAdZutt9yjiDonVvERuwfEe2GrB7eEFI6DdD1HumTPUHZnth9hO9i0YCmUwd4M2m7De3YTMrQF04Logwkn2EvrnBjACovIuLeEFofYj5ALjMWnlgYzi/tNKYDSUGU8ys34z3Zz1/A8yujB0XiPdDow2ndVILYG0Zqw1g5spXPBcBzBlBpF6R540aF0tUAZyzSA8QnyIM0XZd/wCJSi4jhOsByw6wFMumAenSV1gOkQaQhqnMk0iMpxzDc39Q6t3T3kxVlPEFMJ7iFwGP8gMrCfENme/3o3ZhTKW0zg8MPrDKyHEn8g8oZsDNDWAzkGsPVouEemkYZxdTxMVINoh8DmA/+FQwK4/1vexhkz3AekpjKYKZJnJPkJ9YcMDJl5U3qhxrB0Z1ZShlAZIGTAzSlgZM+M1QexaBnN/WAtplAURm38b2z1NOEXZusK5QqWVIbwGMspke7AZJ0aLMLRTZOkPhg6A+tf3dauYApkBlNDJphKFSAUhpbS7rGfkQYSTThnuAMZQZMfAGDBTHoGsPeM/G0wFUYKjMmGrBadoTlnKGsfvD8sR9tBuwfFnCcywV/E61G9iNoMojVvdKZRjOrHwGcAaszsApt0J+M/UC+Tv+WTSD1YBUIOt/u1dEOWBlJ/G927ptGC2CkP2E0YLjPUn3KHyx0YYSjJHRGMB1TeeG9rcu9H3WB+aUNw/j+7BhYDmQfEorR6TcnVUUsS0XdeTIwKcvrchv4Z7np4If+GdnvhA/whf4Q38Ie+E+L60P/CH/AIQ/8If+Ec0uN9FRhVUlFCBHLVCleeUtzB7D1I5i5lBqw7NxiPjSv81TS16zVJQsEgvS+AudbYGkukU0zt+zQzsux8S+zHwWhlJNZe3FqHQZWVDf8Q1/pFz5AGSVPYZoGKDmlMopg/Z6q4kuiLULUpa1U1KqW0Vei+dhz5+uUpK0uivlVFa9XKxV8Loul18lh1eDgii7nRaFMPyx1+yeU6RlJjPpz6zgvn8zDvClX0hT02l2qgpHCtzVLcXmFb0EqOLwfVodnIpTlKUKUXKug4yq9yLIuhTlqG7a4jzJPXQj8T5ZWSnI7E7et4Kl7p7tzk1UtTq3uf0Qperu3DaX3XBdKLpIKQ7SAohDrB7sviVuwxi0GKKxSiBSrqwu4XJ2dRirLSGhaVJuvyrJS0vuhJZms69aOlDq1qflsgpMVoupi5ZdgtVS5LvQ1gKlf5LrZ0snaAobvlvPOLUqBJVagU9aylFKxWcqvNaLQHGX10D1vXKU7YcuYZ/q0NYPBSj36KXWmn5RUzuR7C4XhW1v90NstU+RfwdbQrQxae2+k3sD2BlYjSG+BRwNahRepS0U1S2pLOCzlOWvA9yOB1rIu1XRcP1HYbZ6aIrdrHqgWpWq7AulObJ42knOk50i8dYLxqRUtdQtK9NVLvuWqhdKVjws1NOio4NlR8UVKK61r6EucUSS58mGqd06wGEo8MPkNH4bx6xftsVCo9Fws6erP11O3qeqoWtWCL6tCtSLPSeqLLWWsWtPB61lKx9L1lp3TqlGZ7YuyjRXKXWKvVVqvRVWNpVq9S3VrUrqi7nVMSfSFq7yfE5g67Q5t8tBaFDPM8K2Hmf5hylBhLoeg5Acz3CpBGNiLIubI6RdIKGhpAGdh4M2VNNrGbTfCeoL1i2BcmH8suVX9JBrKxNWd0ewMIfKXTaeYqGaFVTNoeqbN2Wx7KX1Jm5FtUfeDiA6TD7PpgFteF8fM8MmCk2Z5ml6dkeTqU+W5alK0rWdWpyKy71dWqsqupAUrNOHQ4VDh0OGR4dDg0OD/SOPR4ZD89Dh2LnDocehU1+iOK7fS5b3sijtXmtSyiqil1SikkN5YOjdPDKKiBdpMmhhI+MXaFxhtEOsPuWCowwQNW52S+zGc0Uhj/Sugysg5oYSwqkmMzmw7Th0JXPDGI2sQLh1kLmBRF4TpM69ZpvYy+wGch1mBdo4vtYat7SQzTGSGUw0hN4s5DrA6RnINbIe7EGMXe1j2hihRYdv1p8sftOsn1HWh8YOlBpGd5Jyw2iqm0S9Wb/sF1q6SDf+J+WQ+SHmX8AdF2joboh7hFwA6VRNPWch6OhoFtdBT+iobosodZV84unaw72E9Re5HeYfYh8GDaID5L3aeIDJopvKBROK5dLQ0gzhCixdYT58hC6E1gB9hDNAUw/YgysHFuolirBiwOtlNYBbOGHMHEBTKrni4jNg5pmhRDmmUl38jiAoi6zNk1hC7+FzD3jHTejT7BtMokHVpwh9aD2+mH2QGSGkg4gHN7Qbt3j5n0zRdgyhqQWw1tWNo5qKWlMZrMzZrEZWDOLrAVlU4yb1jM2FEPWWZNOUoxj4sC4PcZ9nBpKCiwCpv5EYSSu9D6gawCpZSVQlLOswugvsf6g+S6YLiDOE0QMmlMXSxirWLtpxLMLA6EMox7P1gZTtIvb551mm8juxcamG8s5g0QzYebkK4gzleLPznEZ2MvYb2QKWPi7yT2npDNLgrQW336RW+6C0OExSn2lKHZi00TGtlyek7JoLZ2SmlPSaocpogv4gphkmu6X5J7Q9oKYbofqfEDZPadmUp8NGYfv1KM0PSYGKGzA2S+/wz1yhuwUgthmgpFVKTuh3Tt+j0pTVuiekwTsl6XJ1+ILSk/EN6UxTqeEN0+oGydH+EFsFIpFoGyXA9MUpY//EACUQAAICAgICAgIDAQAAAAAAAAERITEAQVFhcYGRobHB0eHw8f/aAAgBAQABPxCKN2UU7iZwFpgLXMThHVJQYQ3zgoajUt/t5CBJQCVwiVzM4pVd92SBtr1k0xEKKovYKwcgZPiBzdDAgJmAm1p6p4PzpLQsCZxCCTVF6kz6xNnscyK/HGFG66XF7KI/GaZl2R/aCW8Q/i3XGwgBgr7BsPgApYgSII2xIflXhZ8CiDcEaBU58xalwI1MYAI7EbQLKM1hHMpkb8ocvAFzyj+jPxkqyZig2O4I4xHwdlW+Ne8D5J3p8rhHzkeT5bBqKjKNmE3uXfTxEQH9oQadjOH5Lr4Vw8sujsbPFxGs/hHZIXrnELgkKafG4zjY7VRP7zoeIL8skQhlUANRO60XkowW/j4w/unXj3hQXZb4PPGEwO155DNzkEv0wWR8QMEdT6J4nsY5AmnFXnso26DFaWGgSo536iTkvrUWHU8DBD4BFeJtr6yjZ4BQ2PvWCPAALJGyZ8zjKCXhHdf7+cLMR3skO0N4OwWd9ISP9ziYWx7TlkMYVt8NTqXQWEbHIvfFUsoRDL5iOepz2gxHJ+BkvkPkmofmZxRSlhUDrv6yvKGoTZA5jFUVwAC/96whhFmU+zZ1Rwm2K+mBXeS/0hzb8ZcAkXED1sxiWrLX+UgYrKQlzJqOA8phc2TVdxlGKDKP/GCH8YS3/gYG4oeMPJ8dhuAmGskAD58kjPZwxNEWfPW1rNENIiCqr4RziTYZICCvwScfoHiSzWiNZXI5amzDizglH410T7yKlKHsuETs58vh1IQKp4geWzI/mpGIJ89kvlyGesWxaD8UiPGaCFCTxzyR/eFhKNc+hrXnLsxEBT+F2M8/NIyHIWLzcybO6wAkgvmUAR+c4A+Ce7LDvCVR3UbEUzeKJZoemOKw2wT/ALXhA4ICu3110xnMB2rYvjZKxxJTkGPjtHF2/sk8nocdYgwBdtJpPxksP6EEs33kpl2uOwZMDE/Bn3r4GABe9xqewwN4hwPhfP8AjwbJvoa6NnHDE9mglybLw98sDngQIKrDOgej/oeNUlsaXVCXlXzwUNAAQ4+cup2NJn5H7wzRN8AgQfWQLhvYgr6wDvuRsednzh5+f8UIwKlZ3sf0scE11XBPCw8g7tizq9DCa6PHTxPYMu3/ABkqTsyv+tnHsiQJ9HQKc5ZFD7m1+8kAtCCTuUSByMStptceVwo1nRP2wRPyTnoUxMW64HjPsWYT/ReKRqHHSCIWdGkZMz3pec/vtag5drgdzwJP6wQQhpOjH3igVuXBlgbZedrjvlErAB4TBMXqYLGf20JahscZzbYe4UQBY/OciQ+QFocLAdTrRj2S89ADzuO9HKjUnvbbeIDwj+NyzAyrEOAwhyRn6PN3BM7weAWHdu0C/wBYIpkfr6HjKc1QdbDisAaXvbXvbwxzdj4AoE5AP8PvQvDrs7R9cGe3kGeIt/3/AFhTlt69cZM9V7efYP5Pqx6w8iZ+wfgbwsOP1tCBZ5rPBW6ZIe/JOdX1bmTNZYn5XPHeMk+JXPLTrOi9XzClZSs9DX4jJcVHL+Dqc3wETBr1/WJ7K+TsRMHNivAXhuKzv/EeOVi2ClHKROl38Zo9OAG/OnHxkIdky6mZFZ6gcURdLeQpUI3Vq0sl13ZA7dhg5yV4agdGcny0z5XB1g6CslhAE74/vF3e58BHE/Lf5V2R6yQjs8qPENB58QmXBUEaHzhqgvUceMpxb4/5qcA96GhJoWb/ADhjyBDP7z3yL9yiJf5yP6j7LjWEUbjQ1UB6GGeQRLgX3xg+FeudN/OQebI1L+5WClowl3NE4ZfIUfdwXlsJgm1b7EMZwopT5TJH854AhIAgJ2DPOD782QDfjBQudy/pYRP7DiNSVWUIWzGtQVJ7wbNel7ebNsWgJ/mM5ckTwq2KfnADJQmtqILl4x1Tv6v5YfZaH3BjjPKEyVaR2oOIKiJbCE6iSLxRZHJ5JKvNOzYXI4TjPo77fQYaGCU9GSYnS5vE5kBaIiZ6GWg05MD95CjlVyQwXzgAEDbV348MEjZbL22EkzrEDzC8DgEbQwAQuQVGqfl4wQiIIdsk8eYzdKRKuPXOBHu90Do4U9Hmr73lRTtfkMcnBs7ZFid/PGXMiYPSC8h4P30VytgM50AFz1MEJzeE7ZHwB5i3g3Ew+0BP3iA8KSZE0eG8XFGDLuCWLMYvnYAgClyD8sJpbI3zvECeZPskTKhZxDosybNr6xRSciVHrADPIbFMmZ6OLsxRlzo6OJ6gCjrSh3hTIJSmzR5g4uvTheE7P1jX+l1bS3gtQVoaXZ4/ecC0Gk2BG6LyO7QmSRBPnNppyQmJKu5OAPqINvbMDeEsPhncLyBIw18uF4LDdGiOR+pIyHNuzwBs4td61JskBgn84QLvaXoiPWFEiIm6Cg1xlopdVX/BHWKiSbgkujDxbsuBYBZn1iMSiY7W52cP2BrZ7C5nJgMs9BW/nLnUfSIPWEc1aNPkfwck/TA5PyiML90wKM/AOGvQZkE1FbwuDwUY8pdBfGfiimP2sepEurBfxlz8MUvzAZuRIZYH8bOWd2JG+uQefGAfAcQBAszh5BTHkRfgTkwQSdd7uC1hJ358pxtjEjv8y44GB1RXEAmH2cF70EjSiVg7UGtbfY3imDFr++8mUw9qfha9ZAcAoVpbPo3jfbAKvf4w3ZO0PKXBBX1gQA2uuSEr3mg42TCkyOsJkAuwZXNfWHbppdJmgbwTNLzCULbGetCHK4RWEcuUGLk78DIruuR14/WULU02mIghnxhfh/Zrg5EaXkRZ1tZcQquGGgODzg6RPNAyOlhUnTk0QdphB4Ad0ZKADBEZfwoMz9AsZPMIwYHjkLnPnkmJRgzA/jIpkz/REDQNYuLBP7vlm8CZdiOELQ8ZPw018f7jIn2+hckZJZH+IR4CxQIW/Bim1giLO/YJ3ysBioG6mdiAMRr7Gr8Yd0tgeC9dfWQ+gpJF2Gf4w763f1Ty5HM+tuRGc/FF1PEnIn0x3dEAknEFT/xlTeIyVyLdNRIrPuaMbcDDtwyO/RZ/FZM/prxqWORmwbULadmJ8Z5jYngc9jPlXZvo2fjOyYs25qiVl0pXddIAQcl2/AIX6zlmj5CFe37wRrchyPFQT+c6glwIY5aSPjBex+zJLzYsmdiI2ucgM6f8x85APXggDyyhnq0a7HDonNvlrS15DyEXztn6fPjBwSCZi/mziMbG55PYqKwRCk60ewyf5zuYmU9/rPNXIMH5r6wSxOpPIndXg2SFYtfFfOJLR5k2j3vvFLI7f6Ogc1AT41rrWK0dmmduUv5xE2PAiDyxMZIIcD6r3l6KIpD/ADyZvVoFbRF4JG/IEEOeg1kM2SIjvcICMexw6v8A3GK9V2DsIomMsF/kFSZ1sYZqTXQ5+sdact/IrDYnm4J1BXOCBH4RJ5o4dakh6kS6nBxxRtfwwMQ5e9SNQBIeMafqZmocYaJlddReh6z2B+/vjLRQVzy1pEicILJgd7UNzh19Gl5u+M+z8LlHr5x6cj3c1cZoEgkvd2QJXYyIsnEwSAP95yWT45Y2oEs4dmSof9I1fGSnfv8ACAbWGuajj5Gu8R5sHvXEj4wmOjLD5uwf4yvstkwbLLnrHDuJfXEKHlKztQ+a0ozxxEOOAWDvKACKgugPvWGJ4F8jym8kJCFGifNJY4goki90flHEhK2fB0XZLwK5G9yInuMFOUZ15cYS4Ihn2Bv5y532IHj/ALgE3wTHmuHgYD2btn8HEN8SVv1EPNp8bfzwT94GYPfiPC3nU/MhdSFm7mTwmwdGRnIpb2yE0B3j+oICR60yssxrRa6MGFxnJRJ8Sr3gS2l3zxIbx9n0H+dMQLDejsvLhzLNT/IXxhYHgiRHXsvOqiCHDL8TlPgWDIIeuFhC5ZMJq/hrAzv6g8+Q15wToKh2tkeBGIRvRYMqjOJ6g860ABlmy0JgEHx6Pzl+RuJ+SBGT0Pliwqkcd4QDvUIxG/IOKZ4NmRtjQTzsdXol8nLEQF6Ez1lL7bL75IxHok8grf3lEjRDtASiuMEi51yYK3N/OLQXYkQ9Hg+8EiHBNl8QxqsBRLjoVck6nEud9EcJwAsTZCT8RuQ7yjGo1Oy6ZWAah36Neus2z/pdVAwdlq+CLBOKDBZH3NPzjj8ErRllqSMQS5NJaAPVYO5Z+hhDU5dX3QBVaNYSyZQfLA04YxAu0h5PBhvDM3SGvp75xqTYFl7JhB7GFvkEKJIf95e4PzuiHR+MRh23cLYV5+aow6GyMQJNk8/ocI4gcs9/M+Fmt2CTO+nBy9mW6BiJAmsLQLOhFk8jxk72AjIPT08lRpFAss/YZJkaZmvZ+cRBcbXXnQGQeXMh7f1xnJ4TtE7J8fnNJA0RuyfrCAbLAQiSJ32Ti9l+G/aI/jNTJMAW+DwSMpoq2QCQ1rhZxbDI1Wov+M90R8ua84XBg8LtyTws8qLhFBuA4QGLd8gjmXMMDCH6hiY/Jg/WadnnQD1yiMXJin1fovCOpaiL56xNWB8ICCDO8Wq8R59MYuKNAWBIMhuTk1A8cKQPeGJbPbQ8rX7zYWzXoIe8gGAbFeEBKx9moKOpdJT8Z9pGKlUOI+cQMSonV0PJvAOGO7fbqd4QLPncHUh7eeS/jj2HkwybpulSBbBnFGvIoyY2x1hFcvas7fjAJFrg0plecHlEvuZf3m6/k8nY3j+RD0ELnACgv5cQQdD9YAKINnnY2ao4RAZPmu9/6MIiyqItyQT5eKfB9kpt7ymGfK3Psn8YhDI8Nkc6yW4YEQfx2sCmCRzJgghBcYBpasphEgHg4tNu9tUTwMZgeCT8BB4rlEozXALWN9v+vPd47DUW6NJrA+Jh8osW5kYVY5XX+C1nxWoin/qxCmwZ53zW8O98v8JViEsPf5YCssecEzyBD8H8ecJL/ufKl5+T0QIITwEok+dlWq14zezVemdmNZsI03U0XobxkGat6MjgGsk/Fg+UcZFhC1MxuFkD8nnnH8WSGQD/ALSyl/BPdkNicrRE0a8yEJ4yfHJhkzQ5xekiywyiL7zxvl8C/wC8lljxQuE+fGXYXkGjU8o45MGOwZ/IwgvmfmJEvjOLh0yPBALYzwB+qC4VZDSNkT8/YrnNKiPTQ0QzWDgqfsfmBhvZcOSCF5GMGQ9P8MoFfzkblSJOlCaYzlwlNDq3nqHri3HJw3u0vTcGX/GR45YsB4AfiAabHcjPt/2ZneFPojqdN6eBo73PwWHQ+smDvmV34PrCvfsefFmcPhc1PZYgOsuAQp7A61BGMsriA4ueNxj71AERydjLBBPmgvt4tniZ+et4pHyQ6Lvm+Mgo6PL0zHGE66I3ahklF46t+q3AT/rGZXO9ctcYDN2I01W1LrOaUkizBNCs/flkocUVxkNliTOhMg8F4/PyBV0QsVCd6i7EwfvBHyv9WsMsfbr0PG8i6uZq2zGeSg4gTxcGOsA1Pn+SEQeOs9h8RrmYwHdrZ/woYSFwnFD6dZoCtwxse5eH3Jk1XJVYCTKMqEFxsziLG9CVu/jHKJaBev2oWcCCfpi4UXg6vltN8XiCg+mjPIBe8D/Kv0EV+s0jFNDklCQY/GAJk+b/ADKlYac2CGQDHokie8XHf4CUMSfWVLpB3OxOslgUfLm9yjiBDWtMwu9g/wAZ9/nqCCb5OGJnwWlArmcHX6+GICw9+514IFke8j5Wyy2sA8oBepoCjiAhmKvfSDDyb+PgmVYGT74/h6zapFvZAF7xqtDaavgcfoWrIsEAjNUXRD52SCL5z81dftrIkKlCgnkbOMd3zvi/6xgQff8AJ0TgKDJK7l7BBXecUXsiEBfnGF3pwxHNA8YrIgfBCvlD7xHy9ngyQni2e4v5la+cAUcfIBkgzvJ2GRsxszGusuTC06NshcZ9zoy+OKeASjNg21wSh1i2xvuUYHTANOlC1ueMLgKQ/wDDg+snkdhD5Mm89vkjURBneJgipQNTIR7LyQIR2WWfmKWPkXNIEnU7wdwu51cSSsEuRIknaoqlibNGE+VsayIs96d8POzUoCuWSHOJDg2aZE8b7xMrQX9e4wMhvR66k7WB2ZAGCfiIxsnY/jY8HAFEjrs8GihkH/Hy6OCKJ9hE9fPGRPfQjqMublj1+8AsNgx761U5+wGdxyNMZZ5A40OUSOsgqwFHqWLn84pRonuYhf4sFiT4pWfJrJ4U7QHQIskaxRd7Mmq7ZxCTIPIBp9MPKBouOq37yTvgToGu/wCWBXYgARcDw8Mo1J0mOzU54QLR1Br3hV2gLARcSbJOF1YQ73D9/vORsS6JBk6O81xJECOJBuThcGw4hkeD3kQNjx8M8vE4ZjiBIaOGOL39P8MgynZBHVDzhkAz6t1fWAFXwgUnwdk5zYTiGe3zOH3EI3ryPGsAcSF5vkdRGcqlqyesgoHq7gEzziFEwLQ8z1nwBrvQmixjglnRkRHXeQnKqKGiQPZyEbt0c8esN+C6RZoPbxXcULERT4wPV/iKmUzgQDDa8l7M+ZyDsJ8KYgdOcPbVrknRN7+sXG0tgSJXOImNao+jy821MgkajU/3mrXsjYAJJooYFJBTYmZP1rKT+O+iaxSnJqIYILHB/OTvcNUNMHh4F75Sffg4RUn5Xk9kvGGwyrVPJgA8yZPJwTJJgkpwFyRhgMyv+DPN09kHY8PPwt+bRXOKI8AShyC+cP8AaMtLh4df8KMfGFv5Robg8rEOfyjTJdt+80n6PJPyxvJILD7RBJ0UJWdMkttx/wA6wBtRpSa5OIc+j685HPhBdca+84sR6+xkRAAL3ER0CFgf8CKBhks71nB1oeXw+cA4J26Jf2HjokczKJQRXYwUiae6Sh0bzSgEIcBybCvNpnQ7bj5eeYubQDXw8EhoGk0flDPp9ln91ky+eUCXDReAj6A5jRAk4ABxpEeOKGPe+pPwsRK/49BUcsIRw/D9XgZU9KbGzAOKeIWlRh39YDQSlGnAniic4gcA/Hingl0WbPPCgwMfGzwdCjLFZurkCI7Iq8DHBgUfsClk0RJ7+6jrEfg1KdufWFBkCetozGDUGGAwVJ+aGEhmDXRQX77wwvuXo+yMBM+QBM+UTvPr8mKABSGL9nYPyGy8Yfos8D0o95ZAB46K2GF8ZWlJlSHRdVnpH7frHAXwwHKEfebHDRHHwSvWIxd/A4smxl8AtM9FVVkQfBhxEMA2XjhFMzM3QAv5yq/EoKBycUz/ALRsf9z+48ypF/GWWfgT0BpA3xgcl8XYDZYrKQPMWKlHmT4wU3r3/EYBvQbn3YucD17J7LdpHL7Frx2IM534F/ySGNd4DQoASre313iVQFBCqN5cnW6fR4D1kh/gTwo6xNdv/pggv4zga8IH/DjCNlpFB7jRwcz9EHwsPBmRx/yeDm54/Cc4iv4n5aBjnKBXybn4vDK2QK8xfXhYvM/aYL8jIiNx6dFL5w+J5W/JA4xdLwzPNAvGfYk1wucfFFuZKiO0MD0RM10hu4wdpsftKxkPidm6LVCveEr3YM/AYjEdbMbQuf1miZYZ4/Mh9ZJH2RKkRzGNSFKfHmn4M4oQB8Fcs6WPYKuSTTkqmzkKBR35s7eNeGv5ZJ5wD+x5me2T7VR/QX3gHcq+xZvT3hmA1Jd7wczyZrpFWOsl9kPqvc1WA89bmrIqGCPBcxHknZwsH5EwDwHi2Yrrgf54BZnmutSZWLdx8rWt52iRxwFxzn6P3/PVYhFaRCudd58e3fpiQw2IVSD8dIHG+1FSYkKxOOAygRYr1sRn2JAmJgDUYgT9nsAwC+86tGCx48gh/OHdCm5BjBu46chvRWOh8bIO3UziPTN6BUvnF9SOSYNnxgral8mt0S/rJ1aiFsQfAKxKGGdHvQNrFVjsP64AXwcq4YS47Ce8S8Ak9S2/AzswkHQgr2BiSUVZmPPA+sCcW71rFovclQJT6ecuVHXaFgrKhwTtwuNuIyToX8k+DisUF+3zU/eIiOtXdkcYnLUwZ52Ds4KQ00UCeT0MRleEXNB/AxQ3N8jxhwpYhCYsPmsKXIgCitRsnAeX1D7JB4LxQZLgDpEjiGCqHrfysi0yUVUiPInNFsVUEeOhg9ocxW+3nHKoeFHYWMsiBNeaPJJznzF3H08WlCoyAelWKUGJcb/oYpa5GGX5zy2N1z6Qxq3Fo2dF1leJdMlqSVl3IKoEeTKjF4JCZ14fOJnXY5/maOsFebaRnr/TleRBC7EE9DEelHjRAiUD9YRIXkEniYEMnFyJakQPIan85dqQObiB11iKPqOEdHxk9i40VHoLnETXOxLv6/WWkwHI1IEBaxc6EJHxy8/MuGCdToA4A+xA0QP5wjfJqJ4fOeeNdFHrF2lx42DCQxdn5Dc77GC/B8FBweQ8fZEgmD1A4Z95fNunxKRwb9PRhk7eOyL7qLHWQQCq4jjcmH7xArxQP2efOIhlsjarpDnDWnCAKmJ9CsQWq4kXTm8Ij9nuSz7+cFESB3oJb8feL2Gf3Upz9YAqfhtEKPbnEe54AEbs61xkrghRxMB7YOWDMuSAXxHBWTJIG/1fn9YZ2bL8TK4x/JKY3CBRv8Z8FCBR38AA52Y6MAzJWTMp164VhZylJI6k2jZWARfw2tckGcQ3BBlBQp5g4mAAhA5SgtLnnAuNkMhsxJ45WWlIVPul9fWSBtcoLr4nNmeCRoWxe5wcdsDgML4xHnuzfGDsddRvl/rPtqYaMBxOSj45I3bf3GKXzsQPMF587kTIjVk4Ih7rc3VRgQbNBML4GxkC9eyp3DvPkbT38jBQO2Ziz5o5Ym3z9GOMfrgSuIpexhFl/RE6TLc4JL1rrsXvPyu0CejtHOjqiTcSZ4Bx6kX3KrbWAcW6sQtCl9Z4+rJkEEiP4yiSl5pk+WH/AIYjxG8iwR+vOcmhU/2SN4G9/wBceB6z17HL4PWa2jJRZuZAn5wdSGefyXi7GtyJq7feV2BP+cm8cNgNUlclrDo2gDTjrbjJRhAMEBb8Us12fHEciVjIBP7L5JzjxCK/qOs8WWOEhQBM/jHN1ZdVb5zZAc2QIe7K9Z7kgGPJm1vDe7GzJ4GstXCPTXKIOCCWuT0SJsbzuJjeyl/lhLh+tyGGEv45yRY/J/p5NslmBQHnr84gig3dptE/OUdgBl6LNFw8uw6Ygqf91hMjxHn6QjPoQT+lC8NDTb55EwB7zcw1M/RQEgTgl1Kgv7Eaz8PacSL/AHKzrci2ueo4x7/YjiUSXhsBwGS6VfIOe2hRv5IhjDc7jslmGZAOaX8NShdgY3S56vnneRNX7IaYJNvIKjS3Y/jxh/LIIV0q/wA89q42bNmrwEq4+DXdYjTeiwxzUgLC/IXQZoA+cK3Mi31MaOTI5JuAgkvZ4nDDkiWDP+PjJ+Dno9J5sJi7962s/MNhOeURl0WhyzDkIt5YbI+F6EnHJnQk0+tBjvJN8wioITySTY/KpRWUogPYj7WT6ig6ggskfGOrPwkxNChky5opeh4MZft+RV3IeOI2R0ZLEjWb+mwPUTBzxGuDGjYK/WcFn+fSRvDIAEP1qj8YCC+B4gL4w1/uWQpDOeROxNIleHnmUyXsCuOfWceiHIvkhvKs7jvjp5b2GR4pjz4w+OZIQhn4n3g+umuWzrqsWlVS0VEbwc9QZAjlU+KxHk7euM0I9dhKahYCw5UmAKn94eQYszcn8vLMiUCv57Bxq5J/qmhiZTc/RlfWOHuQTscxwDgLAdnrTmBNYoLlrkG+ps4AiNmevhF4WzfoyPDn1j3EsiSzz7azRUvUfB9RhBjhy4M0tAHBEeXK6hlRg1sSYSXtJPIk0UnfHNz9ZYexJk+31nIGqmG49jJPFhC0VR8Gc38VXd+cXBMcAFXoUsqLsq9V485HBAPLe1mMIC58bhfrO355LQFRznKhkdJ2fM4Gdo6VLlbGAGflHmx3B+cvakQEUa1ycLW7BQM7bImTkaCUiSRMgNayDskyiPtecMliGfPwDEZy7P0p+jPjEI9ptteychiSaXfDO5nFwQtBFJbUvJoRsDMaPxgF3DQ0rB8/eciR5Qfl6R/GS5mI1NIGLGBARyP+Q5H3k0H0eA4CO/vIcETX83F5bIOmV49gVhH9MkBAJc/1nCanye+byZWuZJPH3GbqAv6Qq8kAkJO+9M7/AJwmN3bieTwM9NV1b9nPK6gKL8s4efCnkorohYWweCVlHvZyv2F8sdinlbIESZZOy1CxefJdOjwXmp0gPmZ2xhfJrcmQkQdsfeGtgmgVqjrvCTEz9MeVM5G3XTjloYRJ3tO/XH8ZBMMzPDlTpH85LB/USn3rCJVM/wBsc7+cfIvXkUPhZo02pa/ywUqkcaRqhgNSAAA/0QdvESwTIv8ASEZIaIAfnuCbeAIv5d5rmjXh9GcrbGpRZd+XgYYpKagQPb+c7tC+b9YWrk+7GtgDKC2hDW75vB86vRJ5Wt5DAZFbiHF4KRlDWwQK/GT2ANC+u2f1m/k8bQmoGBSIe48iW1hMEk2kpR/CjBR+QV0TGk571a91VHASVJivsJPG6hz7v33gUJ3IcCqPnGuVCr/s4js8DsB9DrEAL75nRZ8eMDmQTrpyWucSB0gxNHrSzgupceVbRyVPhgl3JjBNjbgBcc4jwede94IQvgqrE/GfBDDPlwIvOQRfxz8DnD9lTB9a4jDRvc6IL8h5ZdMiSwSF9PPz7Am0VnK9wSH/AK8O3IXcTdwHi1Wp50RJaeWET62xJ2Xg8mST0a84WTXh/sLvF8UiWRENGJGXoNxJscwKzRgg70yrErAXupmIgiLHnITDlHyeZ4vWHzz0u7mJwcN/cfEMZ3JhEKS0/X4wihocmI1t5IcscRX+5ziVsWSiDClnI+CRzVJ0cCTJLkzYsNT/ABn8hRA6D+MA/PY/Zbwx56G+10cRlQkhr0WLwBWAuYG6j5ybB98H8ZW+3A3uN4FW3AkqWHJU4+GSTvRqeMCbHMIQtiP3nY5O4KKHOs6SsFCirqYwMcOvgVIdzkk6FB3tgEHnGfKejdD1OQUjMkqC96GVQ4qz/I95ASIc8nis67Ds933mw+2NAzJ8msjUA8IOxHs4UwWpvRHF6xccmYP+nCqp2SBqbrLsLo18bwoeeBxVmnig+w645/vNpMJR1T08sd9MSA+2cnrfJA8xeRLESo11MDJXDndLlBYx63IR74OE8Cx7L2lncGpl1vj9YQiD4Fy22L5zoO7AgStuRj7LoADbiaxKw+0bjqfOHiRwe+1rNOzNfgQ1hnY5ZnQ1tnm/Pzw4wasllh7/AAVlon6MXQU0M4nkJp8n5zdVMPexFZJfBh7EXQvEhp8PmIkIF4UOwy5c6C5yQJ+7NQO19507P8OjGEFcwbX8Ws9rUeBzAOAiTNnQb4jNfxCBsEEoZwQA51+9OFmoZc6nljg4+DGloJ9ix6yTtAQQP8sF/fIBa+cv5LYNcO4HOoh3oRNnCIqm1M14PvL7EPYZ9nEP0AxMAXefzZiChwJz+WAjSmvOWAXDqTyN2ZzlfYMb33j2ZH8WA88YpPUE7D2CtDKhheLB4TK/eV44HMLiwMj6EbD5n6vF+f8AU/eSEBqHp/mMFutEd95LG+Q6NH4yQxTqa76ZwngAjc05nkTnRSXhaQ8P7wE+qtkpyBzkkM2HUQu6ydQKJuaEeB953Vk7sgH4jE4nwgmH67WcAoaSVp3+sMmQxVqCXXSx2Il7bjvEozKhikm9N5F10Sbg1d4m4gSJIL14OMkDZE6vY7AZ/NPVogxJPp5GggSNoyy/WEE1vRjt+QTljtovaEr1kkNTwCnW+hnXLyjoT2M4NkqRDlSuHnIDXAk3YeTzJ5I9Vpx7waKRYfjUV1g+LaG5ZB5xVJmyHKgeFgdX7Iu3t/zmzpE+yag8ZLSQBg8IR5bwdSCFRQ8dE5zxvviXO/7xc3aHP+bwbsVFcKfrKItxwBScQ1hHEKWapfIGAWiyRvZFHxiGoLDsve+xg+mqZSkjw8mZHobbPUfvLZZVKY5jnAffbVdCkDlCnKDZ4XgaGPiaotp78Z4KBQ0wglMs/WaVLrRG+Dys5FVtIm5wN8JBXGx8/jJEUW3okwzx/OeXsDl2YzdoQwSY2Lp4HQfk2O5sYZ8H15EirybjRXDgI5PJHACsQonHkAtON0dJs4DSDM9UAGOAcI2WKlmDSAH+nHwVE9AcGsFRtIGDGzs5YXSIJ3PO8BnfX2X311kjSHPqyLhYwEz2Tzwvf4zd2YC4ceck3I9h/TCTxSSWvGyEZ8DKgGp3HRVgZrn3/ZGfRKKuyQz84oUFpklIaavOB5ls1fd4a1occE1t6GCbe4IUbGGjLpTXBfnNDwzKlu+DOEH8EroIrtGPGSgW5CNQx4dYyUYDFHy2OSMXZB1xYLXZwTekQq6Iwjsr4EuGfJxkD0ABy69jJ9KTWjjF6k+6jGV77Jah2s6ZkxoxfmcCLIcuaXgCzkvmV+394o597FCIAOHyNlyxJXw6wuQTwqdGVd4E5WiE9CA9oYXuQ3xCMFwshCUqNh9E9DIdmTaL8OsdkmwEKExfYwMRBAPr0eQfeI/f+/7eHvnuC4SDJGCQq8ABfcH+cNKGa39kd4IQr6JgCp2cIA+yjPpWv4wNL+qPRl9DCR5TK/mKybH6l9sxlt3/AEYmDGdbhaJI2jv84RyZL0C/rOer3ShXvJBPYfUE2Xazf9mOiJFZ3PHJsL6wgUOEoO2IOzkvqg4sszb8PGmCNgypBiUC0c48hL2ZWkcgx3R3cwkTi89mWelJkZPyQaR9rvCNiS1/PAM/eF+WUdLsP/PCfgX8/bMYpggmpvmfJwn1cjh/lDNlH2JsoMu8rn4uHNlfeEooQb8k6PbwBLwq+fUZzG2AG/I4GsQ8ivS6H/cgcSkXdeMPHO/MnYIzlDlsf9yqJjnbS+zlXWiPwi5/WRZPGxseAc+TR0SIjkvD6DPs/uSctg/0v5BxS+Cb9VHIw2y4kWvcEBZw+OlEibrFxTfkH0sU116N95JGxQ48wwMH/d+xEsYh04gn4e2skxNnT0xOiHklCH20fuxhDpH4bEBs6eLY3c8VYNZEKSONAwdnNJdUVHPS7xPw+72ATyTkcAUTz+pe8F/6btv7OcEjpn7Q5z8u0BPYMjHDHmKJ7vjD7NkH4Q1vFadjvQ0ij6yv6HWF+4MqEOg5OV/Vs/JRwsdRaatBr5wwJ0Lk35i/OOIM9TuCiSgs93woU7J5zomT+VYGxnA8ea/eFr3sE66DCwSIJPBPw6vE/wABX9VWCQA0rQI96RzamRU7b2Eli1/DMvwjiQIE9T9oFsZKFizAHwdTkdmNtF1bVY4M2R35nVXWJpn7N9DmcmjxFGQQvP1nBu1V+XZWCOA9dm5d5Rtx88WYyASuoiP4vK/HS1oI4J9vXsaJyeeZKix8vD4M2mAY0u+c0QETXmTB7WBwv0pcihCwuCfxHRL4yfMXz4VZehsixNjj5ypOhyy1Mn8ZLG7F+dEZyaHdT0Q7xn9+ufHV4oC45S9PWDugV2EYa4GTUs8QBUjnPMadMAGZqcPRZh9Kys5AVkSb57fOM7kyPjZXIrOSaghbHezedhBOzYJ+mckNFmuAP1mrJaUyRx4nKagBc1sz1iNhVCB7gjqc1Bcu+P7jPhNk9aF+sLRlT5Skz8d5rRA+WseYzsMIRsIb8n5zrW7DZLnENJcgyzBnoYhwieDPJfg4Butx+XweMXJ5BuXA/GLroSZElRhZ6nsyvtT9ZJikdSW7PWVyPAloAmICBytTfQBgkAresmD5hHhep+sm4JDBuPH7z6J5D81l8TZkQPOiM53BHQmRE1guTL/O4h482wDJqfZv5yTsMWC0WIfEZMBxQOywUX/nnHyDp2WucDS5OwkfGknkk8gHwp42sHIrW4OJpVlkOduVDoD85Agbe+A9MnA2WFydGnOoGL5mWZRdd9YQjpEJF0vxjUEbbgCGfnIo70yEAKJFoZaBA5Q6hxKQjC58zGtVYHznIhlWQt6EsVh1uWd74tTkgAelrrtDOGaL2+3w8IaC+bNPg85NhkjcyOC4Gbll+Si3XD/GSStwSeD4o43sJgNPwC1A5xO6872OIz4skTvmdhZpkk7qHyF/zCSJbqIExZFYufhw9dg7yRwdkvdQPrLXyxI5a81jL5DViGbXOOJHenfmXWE7sQtd+yVi0yAdT8MoiMjjYMlKTrSw8BqosHl+MQKFK0WRsTxhLuIoyD5AkEE4GyjIhm1sLo5O99kBb9M4UxDQ11IB6ws6MnuJtXC+8BJJ2GhqiPZOFw9URcxXOSY652lJHf4wBjhUb3MD/HGbgx6g/phfZhShATsucDHYTATQGgrLWOrkagtFxc59ph+sPgGNOSw3HQz4JRD9bVZHrZmHIXZJyKFePm/WIAFii4YnrJIoeGKMX3kmanlo+0JeCvIbK++cmr5JgR9gr8Yv+kkzaPErEgeeT1y4rJM9cQX3cOs80ocal7wD6tp6k2N4nJt3v/HWIFwYY0ToWc+wkBMrtbw2q/e65YX/AK0JFksg50tV8av7z7g9g/Z4m89D7aN+Jws6hwFr3UZCDY3BU7nt+MFTe9EQbrWcGTPHLlBX7wdUzxfRl/1kt6k245FAZ+E1oz6X3g9ebc+uP4wST5HyLK5eAuuIX+AQWKN63RcoDlgfJMr464zTIqixA0mUTnF/58zrBzujG3cQTn+RtV3eDf4nXaZWXanQlka7AwFRJGuRsDsHOUUQ+xPajAAKIcgQdGbMzm/opSJG+8INHmwzFLyfjNE3ZRHHUcYDDm0uDoGIGeedI3yUCMkQQS96+A0MUJcFe928Amg4YCjxws9EAnwZBmy8SvZ6ry14xla4f7sSRn1MM8+5zUw2L0DytY2RW9z4IfGQyPx27uMFmG58ED6xCr4hJn6nNn5YfiZ3oYyO2OKXFO8Oo2fZ+p+M7sw+dCvGAeCkkebs7wnXX9KRNZLEH91QAMDJck6+WtBScKeitWg8CZkeugONPnGe5XySkof8Zf8ACkiOcggWZB6gd6wtm+BUjiYGS9olFOPxfOWEeOPVXuc4NJKPRfnzhHvjyO7aGs46MnZPCtnXWADYPve6ph4TC7e+zawfVbMQh4OFetlTBhFTOKqbZIB294NCifBgPQhTg6oeJXEh5CLRG4IOiI5ZyuJZqquTTxyO6W4/Cy16OtTnBPmAFzZaT6yqS1u2S+ED7wvVXOt9BfeCR5snfEccVm0wfTLuglkjm2nfPUPjLjYq09M+MfJ/KCT8Tzh8h21QF8sjJr2SNxBqS8PCfXC6hz859mNR8549mHtdOPjI0ABFKTwU0ictGa5nkMVlCea71KJJ8ZPB+eExexgrkSoodE37wsbjlom4av4w3uYEVT+59ZCJ16MOnxhZ8Qtggcl5T0Lo794ANOOP5/WPmd0PBNlpfeQ44Gid668Z5d0Pi82dE/PT1/WIAOQzok6JJ94vtvhbI7VdYNRsRvSY5jKHOvT72R85BvxA2KMUesqATPPH/WCdw0U72cDXYLXXD3GTZ8gCeYi8Q3BMxrxwZGDca3ZX7azkzbHcfnrrBpBxM3t0UsNsUjUHsh8PGB5t/gEmWveb03JnpAclYuDR4Sb1LHeTdWwTEXq/rHacehOugBRrIPlSQDZXVxkkbBtPS50HggIBceWfayYEMSzy1V+8BikLmlv6yY3sn3oDeBwSLTZHSIxI7R72LjbxcAPc8J1uMF2Q6hBrjX7x8+kPTD84SL2avmv9Oa32UefxgcEku+3CODyDd2DSPNe84q5gxLQXGER3u1UzrDFXKXA0RyBiM1dqR47O8KOma/o8LJCq40DSPkZKmzQBqYCpd4I7s9wry9gZ2ECOesJ6a5IA+ewcciuYZY0FZOBgpuI5g/xkNW2V8PjCJ/Lr/prPII4omDQGIwW/oB/kYjpF/EcjcfGImi+yY60waPebMNlHgqnw3zlxSo2QTK8Y0t8mfzRWP69MB2T/AIHDccFyBtPtd41AriwOJEvBlK30rXnALdwZkMvQwqTrzdRwBltuJRQ5+jh9xHZhJ6HOD4Gh9nqMgs3oKfw1lflAyDT8Ec4RCF1+z7OfikF8FsYQI7O3J86I1l+Hrf8AjiihoTxH3GM+O2CnA9bzySoCG+KlEa7zvmEwg60ax6BMQB05Z/Cx+TYQlAcg2ZyRQfuSsChqaIEWI9HCKjpiCFRHn4wgwur6RZ9/OQNsn06D41GDrczyDLHeT3qyK3Gk8DTuQiYascImhiixXDEkJDdZvdoosM6WBsmbZB8IenmnvbXtOslM600C/NZyoZAZfqCMPBBAsTu48ZpRyNBBcb8ZtrueX5XGFDpwEKHQIbPWIuJSczpewt4HNtowuiNHB61EqU/OTNEOBHcGPGdBDxrg9vPb1Lf46x9nT+H+nFzSezPg38ZJjQj/AL2cpIAtAl71qs+TbEkOtrnJJ+Uu2zeeSbTXKgcDGmk4Ze0eyBODya2wWudYiWBvcifHLvLtIWeYmNEYdK3IBUoyHX7wAbS1VMMXz2cnXvjYPhnIkCEYizZspxnMExIB7JR6yl6C4g0yE+8i54K0T7tnA4bFjcxf+GfFo/DAm7yJL5Ea9Sy80Bdsto8Gng4LEc6JiNfrNkfUeHo5MAj6+hqPeahiAASNEClZxekFx5khrBpI7Ln0avBFa4kHyIA+cPVx52Jg4fHlzAR5keMQ3431Ul4ZiA3X/G8mNBq14ho4Gw9asjncvAuUQ4ZQRl8mZz90XPKnXh4fPsDr4WPzvbwOSFnmQt3Gjys3YmYDa5jjKHz+EwIs51MxSDzQB+s2LnghfpjIO4rd8cYIGzAA/wA+846FzPCI/Gc/OpfiUM7uqNRsigt4Eo6HWk0gw8MlL/glbfjPMSV45uPOefChPw7GHgmfyzw5GOzpyLEHShk44raYRIsONgZSBdxG3BYOEVDfkSBeavkgWxaDqMgrXHrVaOXBsTYYngOTnJkS9Dx9852wtT+Sso32Ze+DrXeHW0XetlHjEW966dYeDuCQvIhEp1hJ8kRAj/RjmZAMHk8LzmwWJ48SbLLGdIcgNT9mBkrgl6AqVJaJw0+K77cEYSgHL+J+sMgrY9a9mM40BKN7c7X7w3Cujcyw9v1h1rjzFqDhJAH+syy0DkurOuIW4WLlOUOddwsG0+PBFaDA95ZgyJH+5Y3z/Eokc+ckDx4tbcke8ZXfxviysGwCY1D/AOlZtaZfflmbywdsDhmTM6ypDItggvo7K1hRB8U+DNwowFlkpLoF+clctqV44WXBXxXzyMHPVnxrNHTYB1yNViNzPBMB1o5YocoUR/W4z2fduaoPD3Qsr0W5yj64R9rYwR1ZP6JGsj/Ph/LOQWQwAtJ/jCwWiZgCY5XKw1/AQPBsz85Kgy12h5m7wiFpzsZ59Z9vkhERMVNZIsV7XjQE/GCTwCWtnvwc3JMUNn+WsLOqJjnYPyMm2kdBEQDPKwl8hJ6ufLyamUib7HRF5/BQ1RrZB64yQ2Ed7SnnLaRCCURDBwD6MHlmW7MYZKdcUP6GelDi1wrwbhR2I0Ho84vlF6E15E4Gx0RImlfXV5xLFmILGveeADXzy1i5Du4JVe/1lv4PI3HJeD8z8HqyQ3k/KYYYkWdvEnRHVp76hYmYptAwjUcrIaXWp5H3g2IEMQocvp4+k4qa2KNfGTO9FizUKVkg/jjaqgM4dJzuNDrE7J0l3w9TgdlioBvknknJswJJFn/A4YKmUORwveC2Q4NCF+WcmZO9jjnR/WTogXO2CvwMqC0QgEEXZBGsZ2oLA8O/VZuoTHYVBWegF1u/cXk0gq7I6fGBlPrd7C7GAISWlYgO0dvObqVyqD3hQguweX5FX85yOlJF6XBOHTnbBB3a4W9YdF8JFHrh4WzKUjjsHBMwFZB4JibBeck604YHcN5pC7b1UZXcodjyareQPKni7JPBxCAw2fMbegGHbE/0F9seDh0u0budbOsJfAOhZt1zhFiC09Vb/OFmQwOnLYWT0DScbQQ3ljaMlcog3OsPbM1CgVwSX84qYEmd8QAZnDX5mBoiO8mEWjKjyx4GGN7hyrrw8XEUi4bnJ0mgOnDjhYtzFC0Y2NTXGHhyWPKHAqR+cR8HwhRMdgRk66T8glSpwXAQBLOv99DC7C0Yk0IP9ayr+wk8If5YZb0yqB4ZPGHQCqn19hYdmUZk+YHDzS4dCIpA/wCjJdS0dmpXrIgh71sLDwdpjgiSyNrAdm+PiuIPvE0GT3DCU8t4yU4b+s0L2GLNSDyf5y6jURdrRRyHaiAhBNYjZ4cwwqxepgVWjyMRPaogAGBAHABwsQyYmK4jbP1lECwOJRezoLI5+Guf44ymH0ySxBcjHT98hyArxTtu161A/wA8s8wPc2F3eOz2U6ta7yPck8ipABVHIl6if55eTEepJXUme8TMRD+eTPFcYL9/MWyTmqPUT6pHeSnmP82SR8YfJFypPz74WBAEz8Wh7BeH9iH4MdxjBvV7W0+QsYOjNQdNSoYxxEADyN+4zQEcHXXHOFUdHegQi+bz2ZiRzHAmMaWjUiSRHQx1pp1wa1ea9zok8gO8t8yLJTj8jqM6mvg34j6wUdcrXQNMDPFBiDv1/hj2DDAdufDyzf8AtBLWD+Ol0D2cbXuvo7Me8cEt8lVfKZnBe9wLrf6vzjPr9HexGeb0rIEmonFcG7+RCqMsx7mPCINjJcEaX781gcwQCJAt8vcYueWB+ON/nIUWIBjQnYx9gzv9XrEJZkjwV4xjl2R0pnanAkWrcrfI1nn7dPhTOctgCHMvdAvLci55lBcYeRSC4bvgLEnQDBrf6wbsRZRs8+PWCI9D4jjWb77+CQ6fnO0tItaoIJ4R0HPChaMgeMnrZFosTBmHhWtBsWqY1nitBRRRN5pQDxT5XnI8/iJjicehw4A5+MNFyiUCT6u8uPdVxdFZz4v2fFfWbNTfa4zsF9GtIy1BwmuZmlDLfA4Nki5mQo31ke5X7NnJlyQLEQb/ABnkg8SA0Apt5Njd0V+H95KLDAoSyqczmn6VEcwsm0XxFkqeUM3MoUtjfAOHmB5fUbwK+Aot2dDFujT5/t4lbEmWN29awhhVtA0eo3gPCRJks1LvrC5oHsiONQZyYp7/ANp/WV1CZoRfbwcatFAzpDEXZ4Ee93g2NBKLfjvACklxPL7Ky3NWXFbFYUbEXPX4vBQOjrQ5L1WArm5Bufgkk4GEOJtn4jnEN75evJZwBg7JfO6RvHGtD4EaIeR8FuuTpTgpaql51mzXqJunZG8Y6rg1zVdYYo8Jdv2AWC09SNxPYvJ18xEze0cGqRa0Ve7BU4L2Z68A9vnExYcgiJLjw/vGTUt71pmxeAaPgFKQRfM1jKgXykoAVzk/DEi4YS4WfKBCVnodLG9CbkGjv1kJY+y7Pu85Pks9fkcZe+ZGqrVHGTIgc/RM1/WLurex34ByOCdogEh6A1/GTwCeeJMTUYD4VxzYA5OIqfphVQ5VY53ortodDJ0iCQaUceQM2ezrzA4JO8PIESpgvn/XjZtosqY11gv8mLEmLv8AOdoHxLJ7NDE5NufHHSyS0iGQWKX5wvqV4J6X3lHnvfOvrvJV8lui49YPEEHTao+fo5YlgDg8fc/rEZdLlMj4B5wgRx4ok+vxlytWur2WBvQVzcLPPzCXA7YZ2nNaKE7c/WbUSb4Ac94yHAfvRftkxhmUR3R8AcnHY7TA7k8hLJ+9BIF22cByT5C6YIRyzsiunR9ZVlEhGYA0hbye1+or5zkGdPyUehJ+sJmD2EQvNPEdIA60OKs4kLXjt95OpB9s9dBYiwOpBpOPeTJH3fZjhrJQZZlAUYU8jJ1bLDhWtjKgSQY50BXRHJ4RYcOD/jn4CuQQd94keOOvPr7y6KIdqR54x190B5HNsmInwYE3vHxXpFn0s/DMiABz0QRgewLgeH+3kqxx6f3i4XCQimSt4w5q9E7Y5xtIAzD8Ap4WwHyHNkeQYnnJhiCElrknT4wu9fa2eI1liCi/F7KhkjJImJEATL5q7wuhB8Se/LHxjPs6OjLfS+cL6ELqOrIP7w7QcwDQksjZnJj7ZZQLusR6R1yHbwciJZZ5uthYjvyldjw85aTEDl09nnHQRcPmHfAnFEjhkKf4WSYkxKKRM0cMSpPE9G+RGEVMItgIJSBU/vOTPelH2QvvAZBMdlzFE04zkIhfRhe8D55fXQcs4GZBjnlU95wgGQYfGuMAkAx1oj9nD0GHRQA8Dk5K6LkTOzEAY/HO/wDDhKXlE1zoU3jTFAEAfy/c4fZnQqSXGxl222ixDWq+8hEbJ+SR06fjF8gV++qyWRAc1KZvRvBPgjvUdX6xkHjy9X1PWRxYdMP2gP3k/cBiuOksACiRrrz5xt7FmqZrvNwdMxP6k8Z65q+/YPeaDdPwrjrxhJjXnn8cYS/UupFwawjtAD6PZK/GDk11R7OzHOJx0FuORErBzRgBxHGxnCANx4j4yPINDrqdL1l+JUTU3gbM35iIj/mf0H21YLZx9mOoegbLzW2jP87J+8NAmF5K/Tz0DJ6mQveBAXZcVFkesvyqIl0yKWM/jiupd4ePaj/Ibz3tcTUDj3ecaI8Vs1WWm+G4seMm/wBELuT1iDVA0ge1yus6PAoE7P6Gdyh69kEcecfiHRZ3dc5E0kYL+gYA7zX55YlD4zQYFkm12+8F7kCxQ2OTOKVuyb8XAOHU8LcGP8e8vRvmuCjBeXEF+Uk/8cPyWUaqSiaWJ83zuLReIBUDyrqIvDOmVM0wdc5dKwRSdlbz40Wpt0NYQYPBdWwC6FZfkj6I8psZN/hE+AmxlNqp1ZPl4fLDfNDVLOQ+5lEsFkROFDWmZSHCkT95/XHV0HiPgvw42i83Ijmuucv4DIc/CeKFXCEeJTOEGX+YT2xoecMnqEWVP7eEgTx4Yb35witPst+Xawyoex/ZNRja9/mgxl2bCgINzf8AGT/NI34knxnfXliFUwfN4yxsdVuzZySEl6N8vWJ7AGjM76xcaNlR+v6yg32xRMp0LxEgwRPMpJzeCpHtr2d40anxzq1EYaMm1Cf1w+sMeLUsAdTggB/pLoDOEOI7tJKt5qHwX3vvrDI8iZnnxvFzOopRCJKzteqJP73la1wJ4BgTj+BtnuyRM5NOijHjVAYetImIbu8Dvkk76Ui4zXDJHto9tbwbpUOCOKLyeDXCvm/8skS7ciAC5yWIL5i1tcCss2e+bdipxTIhsLRGz5z0d7h89mfGAnoql4M9Y+dXUrj3gDkuefgrh5QgMgy+Vf3noNj7TKsYyPFywap0awRWhD2yDC4zxLZRG3LUFZxNMh6aQJvPEyXtjccz9YOgd+igeHmygQeTK+fNc41z2TRG15wovZGnEV1Wcm+NeJ2zhGhFPxAE8jNkiTA4ZHHEYUDAoig9g3z/ADk+7QGtPtZOoFgnSfPP4x8lwiAOTzyslC9lmVFrRyQQ7MdePO8PgGUHXlmTBwjgt2OjKCp4PEuFwISM6wAfbGiAU34xehvipeiTzlcCVLM2HxzibMG/fE43QVsmoqdzj4C7QC67r4wjiS+IHR4Ay+bDjvWxeSbIIs1DjljADrZQ1W8TZv4FaPLG9YXNojdMoVoB5v8A6nt7DOwUna2IIPE5MqUXc8oAfvBdWNH2uId944kE7BFdF6zimxclLnZGQk/2BuWZesc+6CDJq9rHLR+3wARzgRtnXz1oj9Z9llCB0QMMfZaoHgcgmesm6HaCIpq5ytUBLjTQ4WGhPuyOAucZ+PTSB/ecNXWjAHydYzYEHkjpE+MlskoxQBDNHrPR1yOSa/zww5uiaEyPObJRFpJkm43WHSgnffZ3gPrypRntycSQZ44LnyDN5qGPNDY8V95MH0CBUmVSIyAiAaYvdDjOAwPztGIMZwSfS2xMzxlyACD6vkUVgdHmwTHR4YxxSRnhdcpYhJFlz5S63k+rfHzDEveBA8AvupH0cZ2vnizxOfxv6jreWAbMoBc2HsZARPo2RxItrGfiZQjg8PWao2hyu3eBy/rVnde8BKB0pXnjrA+bC2zwZ3xj5AfGzSKOQV+ARsNH4zxR4McR85A2ECYGv2wLwWVVBzs32s3INlVR8zrH1C0RX9kZ6F37Fer8YDpjs0ySP185oh3E2PPMnOBsGTWrczOU4jiad8bz6AAsvTEaION/qv5x3JXcz4Txmy0I4Zp+J5w2qcAfuiMrcRB/gjqMc2fXkkUxX1lgMq6O3HM4a9nilRNMOsApcwjEA9QzgmdI8KhuD+Mkrbdx19DD8DQqahFy8EnxEUuJbWGv8D8oJkYUb1BkLRWWh3vYkdWMX8A7XFc+cPhtjv0unj1o1Zr3S1jlcT2PM8bzk75kx0SMQ412SL86wGNtgGyIXGXHzBBXnZZy3aBUV0NSDhY9kRJ8gdRgLHfI99BLJBZZdfv194+JR2YPjv8AGXrvUURNzne18sRRHIUHmvFMOsIdQpr2lDnLuSBYv6zsrb90SBBwRE8032VeGyOoHL7J58Y5jfYLVi7nJMfiPe8apLRP7/eGyJlmeCKHKwcfK2xtc454Zf050DgWtih7RDq8IIZibKEDZ5Oa7irszKs5tWix0Zsh2c/glfDuP+5tlee+SjQwMdmNKNar8YeCYYga4ClvBo0AFzwYMyxI9aZn05GSNc+rNkZ6koRRSV14y/ROgIszo/vDQAhkKeIv1kFfgoytiDCWNEyIDPnTK/vPAqdx0lt58AtcxwSt4xPyAkOkay+YI5k65gjHHApcIE74w/BFr0PAJOfIeq/14ZAPer+ZPxi8E74fHiMNfCYELooDNj2tGfSKOeUtv6WoOKmvjk8QnnUJx1tUM5fkmm20U8Ibf/PCon3j378xzpHHBOmxJmevxh2GX80rAADyrswSvvhB5RB1A1PxkVEiY4gAabGWAw60rTYfBwwXF/hApw86cxM87vnB8BxrwIgvA9BSkavSAjF5cS2X04eJt7VxupoPN/Y4qd7yTqnDQNfOROwLEx3RbwP15JHjcZ09mEX8jHJ8j2V+sNpGezQswT+sR8SwEwhQiBmv8PcYOAjTWix9YtGfKoNTe8lAPZ44MGZz0t1qUx1gm5+KtFEk+MfZ/hgjsOWVMS+iHj4DFtqtly2Mkyj4BVlLmw8B8kBojrxbWGD52YA9ioKeN0IiTYIsKzGLixzrhGsB6+J3QUayhMfcR6BnJcmeBxZHRPONJggX3xI4WS2p4JGuDpZfldtxa+mCy12nx/AyanwoJbu4JnFVx8WHeGfzIJevIIwL0ADAh8g3hK4qTzwY7OWQCAxBs/5h3j5DJUJbTPk4YsdvXT/JwaPaIFL8RniSNrY7FrCY5geJgFDln4xtgvkQiJgd5p2TU0V9zlwtlhq/0GEhjhA+tx4/GOSRJJ4QpWazgfKEa46jJqbkmVx5XWAh9iylAE+S8nhBM7EaGpzUvRYIlDvTwF3LqLFT2N4z6XslaIjPb5IsOfSZowy0q5v0bxp+XwDT76wlBUpUyGd8nERchsn+tFTnK2JjbW+ZwNWp2tD8h8YXfa6bIHbz1skOSLenkiFQjhnIGKoIbM/PWQjIhX+fT4wzIcmxrVc/rAfPvQTXdesARPDiep85dkdiwpcjwxxhkwAllkAb9g5Akx0OBCY9YoJF9c7XnOi9IPokB9Y+lIii0zw/G8AVdRcHvzk0IsyJAr7ONPz4oOc4sfknQJ2Dk34q6p0mckeP9bFnqsJHMwyuNnwclGPw3vrJd777BCel7wqie9uJ4wdsTv1HYOTG+ufmQgJyV+etqOQVkhacxZP4YXvEUEvASMwtCMI9QGYg85wACtF+J2KOOyCEElfQPnJ7oiExPN/8wHWoptWD73k2CV+2QFpZoSSBL2Q4XjZwkrwYOiEd8gYKJ4cyUcobzSTAUmy0Yqhj8ju/QcnOZCba3SW08fP9GON53ReSwGa0CMk1MmTSiBgOkQjotbjvrOYmY5ofeMkMQ/Ng2T4GPq++NlnKLJT8mWxpYXZR4P1HrAx2TR+U8FYNmYnzCfVZMHaa+IHGTM11xB+DikIitCdzGsZIj5rjZ+vOITNAOJ8kiSxiHWlP884CtT6FtBx9ZUruz9manPfRjR+QyfzkegwZ24tTgIhc0qjykHgCqgSvvaqcNauBxxU6ynxp+qChYumI9p+AbwCwZVUTW9eMJ8i9lcemf9OCqTNLUCYzmput8Mh+8FeKB38gK8CT/b276z0KtN1QcgDL35sOEk9YNn/hPYfeRYcWvil1j7WpDMSSXOTBPO+whymcklAqOBWkRc1WQIL4AAIrsnCCizaSMLp9Ze6iIkrtxhsjrutsP7jBsdH+0U94uuYiutB4dH7YO2/r1nyOlADmJDymKBQGpPyQcvr8wQJLE5ezBrvYPWRZgG2L4eQRyjzXx1kVMHoeOF6wntFLQPJRZ/7kP4M6A49+s4PNPcQYMAvCAwGvyTzSeJdk2Tz/AEsh8+AFt6OOXz14b7yOWyQQgvjeQOevT7yvSPApGXriM4LPCew40G82bvjZNxOB9RVng1FPjKdiwj9QI/OKPcAQjLlnLoXe46Jic7D6Ao/kb+sJL3aP5YsIDK2AP37WFgNNMjtnoaxOEhB1K/gYYL3QejYy/eq6PMRhYXDVwPUwR5WAKQY6nuOM4E2gf+la94iSnLmq9SIAxCZ9Ea8Rmz/v4PWE+LI5vRhfvBe/9q+hOI+FXAK2H+M1sUxC5g+BrIRo+0FrxWN/0Q/AXE4CZKFyr9SQxeAV1ZQ3yywcMhIOwqEySeDiaNDST2Fus/1FdyQkcc9+EVAnbnDW974NknnB1DJMxwe8sVrk7pE9XmlMJjfX4yuv9KbQxVLjkz395JrQ3yblQVlyDGmbT9mcH50+XMDayfNphIDneFOUB/bhTeQFUbMJ8oBYxI0Ljipl5JfO5qkBBE5YIl+JuE6EYlT4gQIPRc4Q+X0hRVysc30FRdTKPWH38RcXEDN60R6s+DhMPr1K2KygBYL17EsZJOxZ6+ljiR5mQaEWHnr5Pi8AE8TRHFrkMnOo4WmCGhvGeGdgFJpDs4j0X05j4D9xkseOLM/jOGLYMvxPbxjaWhzsMaX7wJGSZbW+Oy8JtCXFcXNDJMeZVV8gnETK8EJpwea11gumF/M8B4Kjpe4q1vPgk0wjR+oyrk7WhE/zgjSZS4j984N+AXw+OFOOoNaM8Cs9GGOW+z3o4F3BAFFEWv3gIWhsoeEhwRi0PaWj30cHHHI2Dp8jCemHvnlmAFkNjzDLFfr1gcTNlunxQyXfJDEDrjAixeyv8gayRrlDtfycB19gu53IxMCPKkyZPxknBgsA8+eBnJkQDI8xgDcw0VD5eMUAZoeluBMYL5JI6gKVV4CbIi2/dWQDhBAAAaFmfIA5wvcwqf8AZkC7eGwCb104v7xwAnzsGUJ5JxE6A+PQ+NayYMnrYhb7xq2pvfJ6A4z37Gz2BbWErwUQbccGawAs6nyw4yZoLZmtejvFtQeLuDzIOUdXJ30OWsnhrX8E8HOr4CAXJkJHDfQm9bgcYzXMyUboKXg5NseuPzngtA+U9Y5pFlGxLD6Zw20TohcTewtbwcwVIgAGdnRxjpVLbiPxhgpEg/F8VjfkNP4M+c5f1zB/JjIYcH1yb08UeyeLkSNVnshXuSfvLfdF6mUbIyXLR/3kO80hqDoSDo2ZnCwG+921vWfkvkw1ehliht2RciK5xuwgvOm3tj8YeYC3wNIe8kbFRBH1xkskPxzJ/wC4ixL0YVyfMDBaCT9x1pEYi1CkzMHqTBzTENAa7fAf+vESiFcxsyw5w6olUiOejhkgXT/bAqMJ4EKZStjrAXAPS/A9DC5bRbmQHocAXiPEHWqTK7OsPEXJp+epwudQCSNxMmsDIF6n+15R6ggmTYCwx23o7Sx31tOdQcEaNyo42FuH7wXxogc2CfOMnqfJGgtHvCDs2hArn08KSl1Db3J1klzOxxwMnTZJJe19Cckywo05dc3k/wCvjz1n80I8k1s5fczUiUiqyeWCeSQLiNLNoSp0qSjIppDsa7aGR7IDsv8AAIwwJrfJiTp4DE6PKC6QZGEEBABmBT5IISwQoFyOHW7fWWAZ+xDlXvKQnWu+IGJgmahXEx2cdEf5smJ4wo7Ur4f6weY/L6OK+SDda9TeChC7iSfGsTflfARdD4yY7eIrbGIE6g9u37nA+y2y68A5zI/he+8c15cBORQytwIUAe42cgezUiTYNfzirdiYf8oZXCaIfPUwfWX03sSPtmMhl9yITCpSTkddhQCSnrLYohtHRvUvKTPH/C6YwscHhv6kzjsonjzUa35wKvV7tCGhnQhjc+k9e82SDB0OeYrNUpUdPwTnsPQbGuD+s9cxyK44GCDCk/SkVo+82ahXwKBlgvECX2GX8GCIW7zUbF9dU3m18jfXJJ95f1s7AOuQcA2KR++ev3hD47mo4gWMKknSmR/3OfNji0Ru8Py1QY8mTWHQZ8xX3+Ms0xyRrqy+c9E+IC0VJC1m5erM8glDR9ZBDXn6u1ncATwiNB2IxDxMLRSI8HOjBMQD5Y9nF1EiZ9rbJxTAmLpcxDHnDox9HaXl5pDRDZOvx6z4/wAv5+8Opuk+LbWQYnfmXPbRz1wdE/ZvD5MJ+PoYdAx+CTzF4ilwuZ5k9ZF0vNmF6wcLkUn4L3j+Sl7CgscdYQLR17q3+7xOL5cJfeLR5qUgvW8Mx5pSPLwQASf6Mtx4CwuH70q7l+cFc3VH3/OFJ9Ku+D3zgaCQok8/GDwn5jz7OJeYoaaiYbwmdm6RXrnEPw/xKIwwPYbmJFKMq4mSJn24xd/0f+HI59ju6CkjGD0mRBog7HOUAyOolxPJz/I0evvFao7iSEuKrD5lWvFiUxiqfAsJVuFkgv5uK+cAFQX9lFpNYDoT2zoq5wHXaMFe2GTz/ji65+vjL6M9hDXywEkeK4eh6z8/LG1+GN6C3wQNgdLGf0qL6d1GEoOoaX+UnOSH41b/AHlCAfZXqN8bw+DJu1wVw8UEaBIZoLfsn1loUd7h2dHx3na6H1LA4AxsHsgKNd1hgMEnqfsEsBYvh6aV47ZgvbXray+RcdgSjpHeeCAJSueAcZnbzxNcD7xNFggljqdeRrJsRPk8Al8fjOZm3cbA6BznYk+Tx6GL25VFm/AWbI2AZqSYHDwD2zJA7+U/WFpCbY68misbUXG0bf8Anl8kF/08fxgbhlyToz9LC4N1zfRPOdNvgCCrPnHAk9Iyq9knGHzIO0GvZ/OVA3KQBXZL3ljw0Oyqel1jPo30rD852wCWID9dEHDTpGSOvNgPGTVwwSYPJ0vznBUQXx+/6xGP1spAniMkH40bkEVBBybDPaubHvWMR5uwOyzBOA8VRMnWnwcdIRFXyIFOcEFX5sfy8EeCQSy5KhDbyIAo9BFGi5gYTtkp6iJL9Rm0YFGH5A4HGE2Zhhp/5H8ZSJkaIgzNbJyT9Ag+Q+pGJcDT8qe8vW+90QR1jYrcgR/DOcMcU4P6jIoqAm+dLXnKSdXHrsoZPw6dnWbgRogHYscY53Mralxqfc42kGGrqkezlOGAIIKqCCcHRc9ouSOqzdnTUTyeiM2WeU6kQ/COIr3IgaHorLMbEShCFD84ygpuUkurySI8gI6usiWyYotonRjVYqAkHZT37c5fg8sFP5k1nYHXBHXzk9PYJg3AGmsoWUGvxPjHNGzarfo8FIbs6TUaHjCASiZlR7HwPnByaVq0mVohYamF+eBxd6wqqJR8nh4UAdM/Zyrh+SFWrJx78gWez3Q+soD+ANgmNRlQK5I6G+DnB2xUUaFDFAFET1Bh9HIIqhVHfHOBWP2apLo1xmtgCXLJJvkf3myfZNISErOSqS7JWD/t4NTqRUSj0cFMm4ct6Y2RlFp90h46GLYQlgomIb3iPKuDX8/eDpHqCB3o5T+4ofusM1CMPrQNYnyFEz71P1n6BDPW+xlszrZHo8HJ1Zna8d3ka7cfoCwcZZ8R5Z3g9zKXCGlL3jtwtvWl5ymZ8wGeZMHJI5XZOynDIyv3ZJ/kT3nleF6IGB1xAPwPInLZaNeDafRwQ5HliiIXGAniWr9hn3iuCZPQffn4wwo2B/q1giOZToyUEIxAf2oJmzZxkwRIDsiahB/GFTAqodcVAziDNEEgDQ3BnIDfFTvQEA5sM/HZ4dectfMmDooTCxyh4sL1ErH/AHCXJ3rIkL8moEAv3l9lz1uDCwUoowjHjZzXA1CVJ2kcS2T/ALQrLHOnXmRrHKR5fu15wncwfqmLQ7x3EgtH9DaPgZIYDLuu1dkYQQHsppOhjJjHCQEdDWOy58a5nCZ8wR+6Sx/Uy7HF1gWiOoUC7Gsc9sQBTF1vGHut+B+Rlo3+URnD5/BQQrHxagKI15xtkir6seDjPlHTH0nj+g6YfPGsjcRwEjo9PGgI5oeo7x7IYAMn8j3iIGiRgt66sYggCTL9UtjAt7hLcLjX5xdnfmDMmifjFPR0N/Jz05K3vYgYb8CL3yYrFy4l73AZIGfOtKbPOHepUkBgaGkMaK6C/wCPjI7oqI6CRawJUDoqlyF/oy/QkSI4Z/3OfKO9pVySxkngosv9LnFYmN7L+ZCvIcIzySu+Hn1LLFlzz6z8iza8CID8jOiyZ7IBI850Br8qg/8AmALvi4T6eeHVzIAgsTfGCSVwHFn+sPdbMxCo/wAvGEuNH/pIE5piLmINEmbylsa2Q9xrJnUfoI/XeKrufJEwUTbw0So0qh2jIwUiSdb++RPjI7PbiA4WDob2jPJ4PvC1eiD1tkyoxprQfkRNh5xEX0NAdIHHbTB4oH2mc6sGaJueCshqN/JBYicr4Jm3ZXbxbmUYQ9QbOzi/ah/n3jPpknpKM7uItySo8YQhzo9tPw8quCAUyFrxhBDUWfoL8YCw+W/NAVt7zjSC5NEoaX7yY50S677LwsiQ58RzNHEYa3PqPJjCHadS43fQw2ylB2eGfR+scVHBuOBsZffa8mhMEYkyAwdcjoe8FfpKtR4jBHjTsCy8gQY5QULfnPIg9ECa9/zjk9Eso1sM7zTns0RD4nODcAsquK1eNgEepQ/zjAeipRBta6yQYDMmTOh6eRydKwJagSJzkCREAmOPWQzMEl+UyD1GeF8Xz4n4xuvtz45/WQaM3tcz84A/9PgC8e5nqk3blfjAtgTRktRukMYnbcDbZA5hzhsCtMWSewIP5zYEz3w5hTlvkQYj0U4OXJQXFht6bwoH2wplKWicMCRoAn1VzLwYzwNxCShQAezkYFoREgkxlESSZGENTSeY2nhAEAO08LURh4cQETPx8srPsrmO0B5CTwRusMqHjBIhwS8N9DndAoMd8jwvBIfwTgATAYlnjn42A2aNsNMQymGC8xgIFQ5PplIBIsXyEMCVH3vWm4YOFkb+bXwyUQkJbv2WB4gBCC6EiTIKokYKTE4KDoIowxGFL1Socrr6xSlXCTHzeT1w5a/M5sgkJ/lUSOAIcmYomXPoYHwJm47Mgnzhi4Hj/ACfeLhuDMIH+esPy4k+SgROGgZExTnQbk4EAOJkPtvysOkz0/M/jAyZgrgQ3+MQEcao8wfBz0A3fOvrJ4Lc0UUEa4GTv60q9knOZL2RA/lfxnAnW2LJM+JzVxCvnpGsH05Cetnnl4wkjuNM6i81MR3sS7ZxzXZYpIFaJBxut/AEo+S6yh6PSbMoMVihVBqR/vzg4LPkV84ua0QYXDYWfghySEYSXYWADYn8gEFxF44JbQ2u+tgxjghYd3QdbjI5KMMMmEy+0s4QIuyQvPnHubg7UGOQThJE+EFM37jPynxBKEbKyBoke2N+wOcs6gy1uNScqZHY2GmYuXjPXFv87YCVQmJERpvrF9pyAuK4zZXvd6V541Ukzwlf6wE3rckpcd5zpToE7NetY0+YCHypC3gNnubcW20s2BqVyFUj/LI1ILPuiyVrCz9pPVsj8ZGqMikEF6LyDZiHN2eRExvAC2iPK6vgBZXLMQr9EbPzm/gcrn34eDqJ634uceklYA31MZwx1yA1Z4/OeCpmTA4QJxruLn7QIzZ55vUNLKNb9r7JrGTI4jzuJS+MWy/x+D1gruyIJ6aV5UaH+swlhUdjF+AKeKBsD10XX+eUeyOA+ET2cUaIVIB0tbxxMHydGefnJCD6JN7QvJ+YJRDHYSBw/FLomUeMougPCJ+ZPnE4BMItg35o5zIMOZA+6WL2tmStVTykZOiYMdo/eIyLlIosfvGIDfKYRQCj7wKBoCNgMsgClOs65DfOq3GWvyRXtAUMQVdEwlvxmlE+LYEDdYvHBI+gfeD8687JSrEutocuB4y+Ff8AJjAgIjz17E4QOhsP4HGstAER8/5YhMd1Fiq3kTBAgP3JmXjHXp6j6yCJD/2saK0EaMzEbRwARCnLrUghJaz9b3rWTvXkscSEAecYT74naNvxgdKO9DzvNEanYlMGwgMan/Q/G+sFAkyJ1DG/Dz96G3IkUcVC4EHy0T64wmBpgaB+Ff4yWSlA7/7eSNvyeqk2cA4++ZMUhns2WKJVIPGkkxqm9C13m/Q/J/jBSEKwmVMOEcktRCco+MK8UiedmVP5wyDrkEWIlEHjvNRw+vAMLCzIgHfxNjjKE8trwXGU5DHmOI8HBVfATtGERnh6r6TgCMUg35ExxGKw0uyUFgP6ltQ7MFrWKDx/CbUskYCVPASAZm4eD+PZjQ7P3mhSIaHL1L3gb+JUJVCC7x6Qm5Fv1Iw/uwHyxAPOKvOwYEFTNi8Fi/iH7SKwGB4aCETuLOE3z1wnwQcdK98/hPPI/wCXd/5ZJ1zHFATdThKI6DJkopcz/GTsBeSABmfjCXYix3tgeMfqgAQjsB9ZyyvfHJTReXsh0BB5L7wHRmbDIfResaM0BPZPDsBZ+y2NE6UzyM9gbgpuTPDGOIBfY+a8ZNeaN8jnRnAP5e/BF40Jj/jYO3jAjWxf9PJ0Gz8IBW5jOS4M9pf1nOwflOP+Y9TQuFtIcAYiAr2zQ0p6wekFev6POS5FqQRak9RhF7BR7dfBBzXAQ89/GAqFAnzNS0f3h5MetRBFvPJJIjp8AqDnJH+AaIIyyGVwp3Fv53k8VJaletc4JIbgWKnjbWQWWQP4RBApRgieyuJ24Dz3QlLwh5IwUCX/AC6yIg++RAQowxsGilyhNvlbwHlElUNFe8e5VgnXmyjgIJpHuOb6eGPkybk09nPx8EIQPJxFnYqUCuR1h8cF8ATPBwlQQ11FRHGcaB7VO+MijtU/CP6zzJ6Na7rBInrdvWA9ABMcbg/OBUeTQiOdxkdKB66jSjEefGz/AD94UVytaiKUZ9cGF1Pv4xHTD4UA8nC0dwaAYU+WGnqR1xsOspmWWJubxhOwz+iBxW/WMSQ3IHBLNHZOT0YUg3NjQwkxG3Lgu2LAyOPLS2CKFD8YZY8I6J34rGCCdSA3wz2ll/NhghgTO8VRzCQNx4CywFMsxTXSZBzyuyKWg9Xhc6FMk9d3mq76OyzUjAYTl9A+gtYJDcqwX6RyI2XToE/ZCwnphSQxew9LAZn1wOnz+sdORJfh1E49skdTf2F+8B/7rpwZeMIjhCaGh3eDTbkP7fc1lcwo8tDo5A2yEOyXXjCk+C6Y3Mc5/KcOWHHNZKolqCXt/COOZUWtfNgxkQdAXVQIXGD1NByHbnOEeXszqJBOQK73vzbyG9mQ4C1qIwl6hUyCx/eEomLiRJ63BFY0gI/KKmakrF2RrweVokn4xrUgtanknazkbdQHuCOs6mwAbleEEMff6/w9YyaW3z1UhZBHkIkfG7wS4n9rmRGcRMXJ7nxmrEgzV7+8lACRzEpLlDGYT3r+SFWAst++Q9xXpYSwaRKCnhGO8FeZuSRaAIGENfFTFXGbPlNxRe9ec1K7Rk9Emg8FnqEChTQ7z4+FNjkQBjSS9mtagGc/DiZNDVgDHtSrZSHblnCYPki+IU1GNAEA18DhwT1hReplhyn2IGGfYHAZfYNZD3NudVJYz8a2lVf7vKO/kkewMjto8N/GTBL73NNdgYG3Km3vQE16yuaaEz6AylID78xr4zouOrkO7ZwdG6c+VR+s+ZkVEV6xEBm2zJSNqRQyXUPsDRfyMkID0xxb8Dxjrf7N8AaxfAg0GANl6xhjt87U116xiOQXGhXfxGAAEQD3HHeKKZYR5DdjLIHXzyBrKY4kTQ9TnLPKJ/v8Zt7al/Gxj8keHD+zhLQiRB6e8ji/V15R+sgS6YJX35wkI/FlxgVNdky0ghZCtkQSAbN1/ng6bV+dmo+cgyxbv9wYAxu+h4m9GRkRP78GneODEjtGfGskEOKHGwWwbwlFYzCRijrDTiJiKLP3eCACm+LD7pD4yVBmnLT/ACMK3GgeXOv+YtL8pVuKGBgciZrTD7LwGOvLIPHeEqBMnyPwcpXanx5AGcDT0QGD05AyBP8ACRpwIzhlsQOVPisPhQprUbYnOeY0X9TOEPqiZKhXAyApn5L3JDnOHLZiQuJoThBMb61N9H5y71ti91k6F8xu4/nNIUzcknwkA8Knq9xxE/OFDfCk1qvGFWQvZPAvnF7RNjQqSMsJpjl70oODagQqnueFir61BBq+PjOZaYMO+q9YZ2OlNWYP+GRassbJmRwH5xLVTENvwl5wSo7ZrzQk433AKUflH5xeTwYNoxqFkt/4mE5SGcRfo+uEMGltVaBU+Mlo04fHRsvFVRVg0dtrBboMiIfBff5z2L5N+3+4xng8s+5XWaBBfutm3hrwjPLhn85oENlc9/DfWE7J0NST9jGR2lILfg7ZPrNUVI4RvtjNnxTcf0rAY8C3+JWK3o+I1PTwlKYt30/P84KSmh4IqLGNbqFIAWzODbaZAFuCIPeVzya2hMYKsmWCCyu/KxHQXxfxQvBScakxDBNGcHFPtDyIknBElaQJSAgE2jOM3QfrzOuO8ZLvVEArZHOdSdvg9Km8Z4Xt+gKbGFbZEels9HCUjLNRXH1gUDlvjY+18YxJNhXFilqs2NsllUjHhHAVG7NC+ewMrgDQrpvkjNwCdAQkKPjvPVzJhSzPAOOAIsdNEUNg4wp3zdmSKGAwdqoh0FAnGn4EfgA8PLc0TBrkMTHeKJlijBevBWb62XXrPEEzFf4p4iRVsol7Zs0t8jn3kcb2UPJ1/OONe+XR7Ayb3xyH1X7wTwmdLd9D7xiQBJiRHBIwPKx8sWNNYZMMe8lrUMutyA3ipgskHoOwsK3wgxAKYBXk5OjCllheAokfnEQe+NHwtZHRPB1ufGLX3rU9jDP4MSorCPMbiM2NngiVwOT+svL+KYisrts8hQMMDfo7gQ7yuXPAcB/f3hsNoSX3GtjJgIsb1/JGMFacSC/WgQTjChvxNhjCfPhrrWycdXLDOvVXnQg2BIQ9Q3j2a20DSpWfOEN6vsIJl6xi3co9wfIf1ifosEbEq94/pJ8nlVeHoFvw0xJ9YDHmtS5BMTjhqBqQdLreP+Ar2ef4w8Ptx2fLGBedhbA1O+s4VlFdSdLnCyCQfIkKIA2594xROpBKNAeBGFDmkF+AbeFgXx86X+efmgkpeNlkSjcwS5UrOHJUkcGhrz6wktX9fY/1YPwQwQrNnvPk+ads8AMVnbBsAlCdarGbRSujxXLwQ7uy6F/H3kNhbl7PPGafBY0FokDWCBIo6sHbQArH47sRsgbfOeOk/DGnrHNLS3y1zGeFnT+MkW0KmYG1bwbPz7qQgbw2X4nueBIxhc/oGHKgYiRCBNk/cKXm40Vwte7zccqy98lwDjYBS5d+JV5TQD99ezmkKNCSDxqM0xVk0EAdStZfOj+0zt5Uu+omq4yB0lHzyNjxm2RcH3HcZXKMK49ojO2v98PAeTNxD4Ap5EF+GY+5ZGCCuiGrsxGs6O3czddesVTTsGec7HIJLhb5EAZ68Fc8JR7eb40Pi1UU88TxLmf9OH8Ol3JJexh1PQCuNyAc9o6eXHyciWkSEQrpcvCSIL82BzxrKlI8WQOoJz8D9Ea6WACR2JXb7j0MKDSnle7kmMmBJKH54jfbz3FELm9sZyfl80iFxlxv59dfGbfBRYEjucEkeUL0NFgFeki4nlcYL7UXJEGTvD/Hh3ALawCRBkoLZ0ZvDSFDQtQ4g1GZoMxg8fgg3IJcpUE2DrBemg0NoXwAwA1wgKKExCfGWLuiGetIDAwQICxBXylnRirOkLTd8YEF+BNKIwiJMSwI9dk2JoiIElG2EIkGiIEAEiCGLhf1gHklUJFDSB+nhAB2SJJn/IjCkYLowx8qfObpwoIvu1nqi0V5jYwxvpEADiT3xh1cOzKgff8AjnfybgGfaHnJhEI9iAOPIyzsEMydV4GNKt2aPD33k/O6H57XOcHh/wCA5P1kwYLJXxTqxlFu/wCSJk4ZDmRHjfQWaXwOPN4ifab68E52oARf2x+sBjk7X8gYyL2UBH6efmE2QJsucfcmo7qSutZuuCnO+0P3i4qeI0EUxgrUx9gEuc52QrUWbjnOm4bsb+wTkH3si1dSM2dvcKE+VOE9jmPh0Vx/oHd9uGT3Z+chuiyJ3VbOAfnTB7jUDGZQBIHzz3rNWxctzchisHa+CYQjbzyGOeX+WHaMzaPwRwEmhvZJ7Eo/1l0vYfC6IOAMlpun1BInICNgIQTBrXOdCwGDBY464zieQRe6PEHFEF64PQB6OM93yP8AD1eChKnVG4DJs5y2StbD0Os79FmhsxDIx/4pkQWNoD3gW4Vg+4ZbxUMcvYDnl1kEO+xHdyQNYCRZA5ipQBRqYw/ElLfjifjPgANcRz7zcbkJN9OKOWbr4NJTj9uh33wsEgntgcL6GX2pqrHNsYI55pPccnEiEGeUhw/OF0LVvc6PjArCHjs/kpZsqQIky3QNxhPBHhbcvpDHYG9guTc8jEOgULMCkPgZHTMFkWOoaOPa5NPwfgfeBMy+uJ6j958jkbIHBaAwkh+UmEHswxmmDFoD/SsgRTb7mLLx8sAu7qYnznJg+gwu8JCK/vyNqPSy2XIMlUvJrNkTuAPYL5/eQDE6Q/d+znmG0z4fQeQ3MDpI0MP3Y0akbnPhLipqYeCw+y3qC3w8m1WARcBW4yIfH760Mp1570S6wRJDt7JU1odijWcDwBEGhUEKDA3B0FbJl0xQ+YM60WYPxmyE/KO2vcYWCDECdzWzDwpbZuhUSUtHAWAMEGY7Zm0XjEFAZRp7JUsfOD2BIsonkgL5wkWQW1DEGnsycCGyzKBgRFSUCzl2hVknSBExwAeNBJmwnykcTeCCCeBfumSc5YTybBEgwX6tQnWEA0eu3y3kBy/WqWcSFEWjQRl1g6NHzoe4y432QWLarAIPspgyWL8jCjy5E7JNFcnCZ78PQK9fk43UjyQW3fjKJLi+hW3awgU1vwpi6eDatoRMgn3hddNi9oSZwaA4Q2pkh3HxkUUGvbOrhnIP+kiAT3WeXBHiN9DnL5Rjo0lO3jBcsd0EreKDthwTPJDjxnK52VOvL1j6ZFmAj04vCk6chDZ8GTiq3bQ+Jo/jCbSNN8Gg+3GEgGTRgJx6pYSPg8kdtnbByplu7BSLfistigaaL8DoDBy+WKMIEkxWcXKcq3vfrGxsTJJ2DToawPcaUFxE+ccb9EakazxKhbQteYxhuRdsEmDzSGGEOSKFbPzkLmzsYRvnGD2NGG9L9YIk0gokC0fGe3y9vOXqj5RBgR0cD8yeCdXJQB4xHgrpP8LPy/itmZXvLG91rxzl8bXdtqDPnPuJj8gOycVdmfgxIBOVYEbncWpJwvyudj4WKGKRQsb/ADmr11yCYgBLD1L1zW9RnKDF6XgLWeXAIcCftm7JRDr0qvGlvfDa/Zzk8lBlRRmxhfM1RXMtr+c3vip9nz6xgsbolIz8msrwD18miP8AXkDT9MOfJeRwCeVD62UBnyUfvwJOPa3pyd8P7zgvUvhzXDyX5aqY2tZfPgEPxFPGTB7Va15HnOT9+rsRHvN8vQqpYanPcyOJT46w73Ucrdmzl+NFvUsvvJtAGX/2P3jkA9h6Ndk579qbbCH3WVuYkmogF+85aCBW45TywHF/BoSngaQBtVstcDBBfDfw4kwcqfPh2GYrvCvk/GsaQCwPtPIRLEARsJJyJkEBQEIy5CQGHjQtnT4uRjAMkBBkEgeCAyB3nia4JYShKe8kgCIM8ai+MBAI3yXyzJ495Q9z0Ae0VGEwZYsGDJKABAgLJCIhSJBQnQaeaIZTYEBlw9gR1h0wZpJt9mxBBMAj1hJqiKmyDBQEIKl5sfokjc7yNOzhVbs5+GI9Jah4QqCngM7iKyh+X2eayv0iI3yNZp+Py3Lbx72IJhDd2U8nqSe61uXOfbaEaTFHeAiTq5+RskIjJgSnYc+TF85VMImTzXuDnuOVBuOAP1lftV8Dws/q7qEGx7wEEGPsrRbxTXtBmuMIfIijFfr+cPcsKDBfENeM0kqQc27O87Lj+UChuMaoro9upiRlR/XgddZMfufNQcRDLPv+A5yTHQ52+Z/rIvxP8QeccnTXw/kP85pmQJ2fcvD0TAe5ZGgmAOMgRL8FTx2AMeiwup8ySwa3mxD4l9w9xmiKCZUhEyjULDRuf9qwzu4Ij4a3gTHz2NClCWbdwuoIoWc39j2jpGcalkD+u88ko2SBZ5mx9ZuG0Hc7Oe1L3/P3h3BXQ5/eAGmE+ZQS/vCft3pwvrBQJgLYH1yY949z4LHmSbCwIwGQZoL2x1lu+A2mt9xkBAsFbkzwvPnHvTjZNtcDGpKKMqDD9U8Psyz2tFbrCvfKsWdkEDDS2WGR5Qk/GMf9lBSUr/eWhwitlSlWEOSP9IkWBnM7M+h9LJ3Bd/avGuSIOtO+JxaaKEeOTvAfH6Yc9hnGw1GyS/QE/OQjFH9h1w8PLgFHSGxychOoDhhGEB5znzPjkRe84Y66fAs/8xi6EgfhgaxWOTqHpMefGNm34gE2ByKzid8Qw6luMe1BBWiV2OBkN2DJJ7gLz+MkA6A9xzEjnBpaUcQmHxnVyB4FQ+8+zzuRa6j1mzIJ2EnxtYL5SHAE0usAAIk7gyveklggOPdyMBI3Uk3sojNroAmNkDzeO34aYXn+IwxyRKiwPYJIjD/ZRCIBNKOHkL6GZxORkWGxRZIkNoRLXREweyGItwXAmwyQjKCVeezVyDkPGkHeWYCx4zROWFMtgR959On6tc4QcdUtFQMIGrgYAxTUlXAEcQSm8C+JoGZAY3DsxizRhaPoABN8hnAAWQQCZABAAaA1xgsFe3W88LnLmqCMk8hTOvXzjnudQtF3ObEAfolcI3+cQJ8b7bo4+oJXuSuC2sk0vIihV7frAojr7/C3hPxsweCEN3lbm1Z7noDGGLsriRt7P7z8kflMLSAw0O234s+MH3DB+uHzlEbkzw6+cL2Ov+Sy8NXaoNfogLBJZ1P7btLHzCFCx7gGM7DPX+JB4elwHGzNbyCrcOmCVOiTjGtpWJoC1IGReixVfL/jG05ZE11UsZr6lI/G8YPREH3CY7wNSfZkIbvvKpQ9V5nrBIJmTtMrLkaOrjXnGEikeilP+WMeO1KX0Hj2GUhBuH6GRxG6gKCB4j1jataC+14w6O455jBs64XGg1U5ps/iiSjrSwGzJmD50HTzSPjd3zOMdkmDF8gioxcDpq+M6YnXgEPyciKtPsib3hOodDjwViUjk+PNmsTD8rrm3EYgeT1phCJEZ7I/p+2VgVJHhne/9vD86iAioPGQDRgQZr954jWmJ1ok4wa41BvUVGRGx+CGztXnkDn+S/8AmFfKRXwjnG6BOwQ7feBLrjVsFmViCpD/ABUisg9yHVpRKzduaVf1g9HxoaAs6wGyQ4NBw67was8GWrk8YpSUIGZswZSIxnj3bfAB2c7ChyvsM6xyYsn2QlMRm2jI+FCS/wAc2TWjXl+DlCuUQEvSj7wzBj/E6/nOij4Ikw3RYxg+Ax4CrcRj3IJRVxzE1jn9LcbP9ZtzPR1yJ8jJ/wCv7qz7IwzYjngfAIJydkSNx5jxeEC+PSXkiXkiD68x6aOAOV7hzMTTyK1z/X/MlwFKJ65dDxhKWxx5iVOAkqlEgB/ZDOPwNijFIcGTARwVR0BpCUhByB4xj+ajommI0T2BhSmf5a4ayD2u1bDfWsCcoU/nEdgD5sjooPDP8EgqgxAiixgJ4AABBFMmBmJcjD52CEAkmAOEsFleFEnsAEwSmiTQg/GaISDML3BJt5sGDEa4rKsGnhwiFKrKriCiY1hA/Kpf18YADWpCIfIB4IwijaP5RY5P1hcuvNiLiMTDA2CuI0ljHD+qj3lpAidQe5xBBFdgREt9ZB9Bywo2K7x6gaH0k7WHy5Hq6CM4Sv7kELpkaZlmHO+/rLMdHXvs+sMBBS1GhO8gyU3faEwaeLx82OTHeatyZv4QjOJI8iS5+8R53saEgUADOH9gy0J+DhAtSY/iK1k9FGzPZrj1gR9mGiJqIRIx8qpU+T1PWAa7mfFhKsSqPl9mR/zL/YMIEa6WP43H+nG9yOP9w85Jejf8Eg8ges3IAFcJfDABVbtojUto4g63qAJAB2HlHcw2z/F4PNkGeEVy8YF+4Klnbt5D2lWhF3EeMLYJ0lf7gHBsHydRyVzkcb43zX3hSPEjY43Lf3nlwhw7A9ThFpBdBLfo4ouVQaQIJW8ncGSFP0Lg5PtlfFGYJwFFS+PZN1IODmTc8iY8+cJDHaRmG13OOUKaKdnjgBZ2szQPl6KWd2F5nSNy8J2aocuPjLqW9kqQ+IyIhdF8qO8KBGzCj0hawEFLXz7eisBfIJR0Y5NQMYAMGCq2BqzWDwga2J0mdZPE8Ch09iDk9l1M+pIreMVfJAhk7u8Fxs/4zzWOyIs+hZ4kF4OjEEdCW/eMCguXB/u8AspSlEi6icHz0OBtGoyJ8hpjx7wC5gHgCRdJ5wXMze44GfImYHTT7Ge+GxPWheFDR2yNPZ+M7Z2STNxZnJTk7Iv0PBxsxFM7bQByANbZRd/N5AMWSoF8i17ywkCmvHzki9R40DVZ4kBVH/OcPtDenY5KzXE89PXQxq+l2OOBGCV0K14mZGBTZ1566Wc638JqNZJXExyUx7zj0vUh9HPMDR8b3ljkiBcyd4fItH+9Yaej4v45yEyv3pNc4zrwdFnjjLkpLsmfoTnEEiB1cf8AcBHZIU0rmuMcX8qdDRrDZRxxy4ojCw5t+QAP0fzhKDZ6fPBTMYpl8uhqpms1qImhthsIg1k1EL+aGRIhAh/2J41j0ptDm2TUrGm1wvXjDUVXPiXRza/lAalx/OJANDkdTx1keyAyGwdAecodtCQZ1bTeMISyo8jaO8ghH2yU9/Dyg2jwHBL3/WORLdeJIK3WW0GFA0UZvjAJMv8AMa3hsIE8QgIE+pzQWt1oh5R+h/DhHjjBIJlR9wVzpijv4SBSJfGA6+DzyZ4z2wQYG41aj7zyJqG+QIVJ6xw5+T7BbUY0GYDjnzyXjCuV2qfnNsJQ+VCPNYwGLO9kip7yBG5Sb7XHznvaq2OXIX4w93VN+FT4y64K5XhC194ioJqYD/7nE9bLPcyFj1Cql9ca85HJ9t4pCI/J7hEjKLzHV3ejlyR5HJ87WUgwNjkdAS/3iX4LPBoQDm5NH60+5+8g66C2BsMrK/N3UiL6xaku5UW47wLxtkymydHWSf3Ij3BBG+sgGFqvHDTRjLkhx5vogRDwAudFtLXjK+j3xXjEJYEyOfZ1iZmxR4pfGKZDYkpOUpo4TtbHLcxF4FthmqETGD3qN6k/GCArmUAjFQMmCAvivmCMDncgP+gf6wta3bXi+8Vg+e/KEf6shscaV8HWWF5m2eQYJXjFUUfr84pZPgP5Hzk+RuR7AgZOxs/0GvjNyeOuc20ufC0Yb+s1P3y4qDOXK5EwQNe3kcR+SdSyMNkUyk3OrWMn741UMGcYojz4ESuPjNgn6HSDsxgrUCDaHA2Th9h3+TQjAplb/u5GcRJsf8oRgczZEtyfjO+SH1su8MvqyIJevWbt8/MxPPxhs/59evrOfm+zGoyPR/XCOvGf96PI3g+Zo38Kv1hPC/gg+NZRsOuIr8jH890j8ZBIcsI7PLwSeUbkEHqNYBDWC+2xxDl51Msmh4g/54Li9zcAu7ZwLqKlyTfTObs1xBLKpOfnFIO2fhnrI4BZgQuLmcWh6JP0LMEYTSIBPzMv3lgsSOE2KreOyHz1rsYt1dSCCBrxhSLcwhMt+GXlDjg6EIXX94WD+wJnkbgZCSE6Y20bZKz+ZuUq2V8Z55An5L1VYZEAyvXfJ9ZRTmTCZfkADxh37FoeOXgqLo05ueRhTT3AADH9Ygexr1oaUYhdO3xHJhnNBAjre4l4TOzNLVMQXkXJ1CMPrQ+c36Pl76b84IOy+drybzx9aMsriMC1IOvSKs/jLmeuQbN+FiAhBuuRzPneC1+50T1Zxe5bn21BisgBfSItz9Y6A6EONtuYGfCiuDfcnAqBNv0+qGUCwooSux/tZBgowANldnnP+2/4feMngcGDJixWCu2BySR/Bxr3o7J11HOLqL5R4WwqzpEqmZ+dVjLNoOx+KbydA34EIRMYBuTYZK0ICOR0tnlBwBSzYiNKEDZPGEjkra7pvRwRBujsM12Xg1wQUwBER2Dg0gTJX+hTjbj0YJNOWKBxmiBRLHXUIYDwye9X+CQ8fZBUdjTawXzwdcmk8YN0u6BnqhkvxHWxe6weyPJEiUBb94YjwFMxAE7ZYJsgBwNWGRnmBug7fOc7HVxBB5TjIexNzOrEp4/wW2tfrI29pSBfxnMGSXMggQBzlw78hiDE94LPYUitJeTjFUeCKYEVWciA921YUtY3Tp8NjgXOT2UT6IEEDf4zzMSZsMl9PCyTEj23X84wK5oxVh8DE2W5s6F7Dj4xoEo/KUkE7Zx0LDVLKjWJAlp0UaQHEVDwE0i3XXhLGeQr9SArGOgATrfD4n9ZshFainGh1g8Fd1jOgeZbi+xjuP8ANNRgJKlIk+RjsEGTwZ4lYzSL7HbFd4+z/K7xnYJPiL8YeQLUQYcMlRj0if6VwojCwIy2IhDcAMnC4YEEX0QiWhZxxiERAJEEe9HDsqA5G5DjGFNhGKiAUMY/Td2SpJvIEokjhPMzLxhoEv8AcjclYW1YJqHAZ0vnO6T+QRIhnjCvnn0W5wljnhIuOCzzmm/B4NSv1hI3zRFK/jCQJL48x+n1ggTAC9edvnIfBgSaJGrBKGTDDIlRdfX7xk07HwZfoHGyOjYLunqcISDhhE9aa+MFO1MOuNOsurlVUtCNm8I9m0KgI+bywS3qlHETgAOtekeOH85A6TjqiOW94UG+nbCMC2+8mG72ijo1U/Oc8k8wCPgNT6w8gGZYTAX5WDoId2f+HCU+hoBmVt1gtFbgKBEHV4fltDRliMfbKKVLk+xj0bPSPyL+scuYiIve2sdvRR4L96Bx2XB9MNFsOMFbL1Ao784Kj24g6vAi4SVqzVeMZ7lK4+IE4nG+N/GGpS5E+wAAtXhItE7DXkIesW7kMNghCZh4SX3Yhhdd4I4ck9U+3jlva2bP5I4yPI4FT4JvD6JsTzvazUb/AI0qnCKZmiyh92nnB1yJ+S7eIeFc9saNvCdeJ4e5rObJBb4/GXfg0weeo+MQMaoeAqMH85r3Lui5ClZwHTMqFAZaJnP8DyWxcYGgKD+ePk+MOmZgaBgnzGAL8a5n5e8MGSh+XBfhYAFbANCyF+cv4a/FVmy/r2JAkFZH+aVV/GDmUd3LQgAHB6s+y2+XkBFgAe06XDxX3BvzAZ5xJ8BkR15k+cFxz3KBbthnCD1JYFHyK/28my7PEacF45PKsmulwMAi13oU0+VhC1INgaWrZ8518QIB90VnG/lY5kHLQCpcN1h/kGIwNFRBTkcjWrhj6BvLwgPEA+AQV5YDdnkUodCMmKiRI/TwFY+Yyhy8VUY2Vg/CIY0GF0Cufb7ZMDcmRp/ZjOr7Te6GOAEYBIhAmR4Z/TDEIvBVZZFNmlc448VRsQ0PA5eTzII4k2OAPMLS+eGJOwABARE9UcELiSgQkOCYQGAYaw70GUCIMSNIkydYB3+lX3vK9JLcJE0SsXgQ2kq+IzgSENVwJ6ygxJ4MuQH8jEx9VBArbQzs8J9g67eVQCsCyTQWBOvjhilg6Z3CCM6by9Ag3y1otZVytxBOmVo4CqO3RnS2W8JY52uut56kI1ybt4QQuYDa/MH94gtcdT0+RhFoddqHG4GW+EJ8E9ln3nG5j1sJgt00x/NqMuZrwQp8XiDHc+S24+8U6hD/AAmMXRi/cWUSvxj5JXPkmN1iDoz2xLA/5jfSl0OLO0cAEaMqDW7PeaIY2H335wUK9PVwQ/5yAzwaI7UHgHJkLwAgLhHl4oQETX/f4wFhRcdb0BxkEiATCNeXMrCR5AcACoYxO/vZG6H1iutRfiIU1KwF/jSibSC8byxrwlB77z2Kdm/nBIfBd90dHSymebTXBS8es0qBYrbpKiMgGiPTo9yhlv8A6NjLAzJU2SF28Ufyl+pxiJRufiXhoG2dCTx0SFntKo3UdesYTHPWgdms8PiWwV84QGK4/Bn3+c5RHI2VR8rWBr8c87hnHuOGVHLoEYlIENl2GnkJB7UXyqbBzQv+Oz3+8Bci/l/sfAxr9KegoDWP0+fvbCGUe+R70jrBPzKY7kV+cfCl86PUS8SUmAn83bQGQBZ9Q3AXfGGCTTjnySNmfjAXII3zzA6OaJFUXv2ZWWvEKgfH4xW7Es14B4x69RyLGA6M/t2ETrBxfLtbI8E5GzJc0wRDOTafF7WtYIHCIJqWOIwhS/Q4dXknhgyOhwC/nOJ67lWN5ygewIXzL+sZJBX5RHPGEBgHmPdjW/OX7Ukcy4kr0s5HTAfC2F4xjkCFofFmDkFJ0ALoy7r84uzBk8mAfQWGZHBbFcDy8tFmxPB8AU1hv8GfY2yDrHIPxN6+DGMSZlbKtAvTwrfF9OrJk5FHtzKfXjNdk/frw+8gyx7jqoiMPajbN2VxAw+2FD3cDfGXfDVcfE84xdHsGWECDYYGGBvmJ4Z1/jlLbiRLG5JKzpozqPM9YeTzYsPSVZPscHfMiLxqypjhdL95xHgUVyQBvCG4F7fWxeHXka/ZsrCryyOAt3GasIbQR3Gsi60YkEzPz2MfuGXCXIleuM8gjV1MJDeAsAm5H5/jChfH06tYxyzZK5n0cS9OouZ2xrK6BJKtwbMprC/zrSFdv5ygAQgFzPnjCg9siJMzYYeCdLcFW0pfnBEP9+b2VlMlgDUn2DsF5MgqSmduBAtgYNxxBdVN44Z1KMMGFjs9q7MJYJZZHLg8o/OQIbIks6w/hu4MBp1+sdl0EeT2OHrnCzAj8p2MQF/UDQkVOPdc/wAvYxhnyJSDA54eTBH7lkdAYakFm0PoozjPB09c5BgSER0orZBwUtOOLirnxmu7AJdcbwHzs+9hXGc6HI77qVhTMUtbuOznL9xAErzmgLcsgnic0QuRpeILk5CaiJdIa8essUt8zRwb3BNxewusilHqo2+sQQ8EgiF3bKynZPMH60sUSouI543kpPUPdT5nBUaOz6jeHt6QPwZ0MPhaZ5PCF/ODa9AKomoJeJyIpCqfNM1hiigKPdfAeMgA3ueDpnbGaIQS5PuRxi2m2vbK4952NFcM0p4GC2Ns9PookZostrgDegWysBMgz4m6agscZXs+aoQXQyZ5OjUXw2M5C80LUvZyx1TKJ4Nc+cC09D4EPjGTfEiLNHZwQQPX0+ckk0YkQ3pjfVZaIe/sOZ1g70wDx7/RZyI+uWIvvKarBkeRs2MBfnQOwNlCLyHNqR2vNnOa0Iu4h94GjL17Antk4g/njeEAkc9OC2ZYBz0fBriPnFsTL3J8Igv1g8pklcg9jaPOXyB1ouZEsjHxbqLiFKYByGKgOjXKSJOEgfxItltPeQ65mffELFxzPVp3WEQTvbXUGYxNLX9RzWEDdz7RavZOJ9mi9bp1haPPiOO8X52DU+t4fsGFp4pLLc+docJNng4m39aXZlrLOzuBVb2xh1RH4A7Y3kkg/iR4awmvMeFJHN4xbYW+nO5jHLIL+I/gPEOI1cPbhv3miIjlqaZl5De+UQoLveOT+dDzOWD19IIrB4gyQpcpY/V0iENvNSQ9seRrJSCid7mH1lVQ4OxzaE4ISaTUH0NnPAewxsICfWPvz52GSh85piDfbhhLBa8r6JiU+8PhHlwB0VlwK72OlY94T0YSK5E6wcoAixrrwccByKLMammcC1I9cG2iH28jxMjkl3+pzjihv9W/NY6JBH688A4GW6fpHijnqEda0AH+sNaOwOuCBwcUfKB42I4OSkXAmlWzvJ74185PIA8oKK3isnwBypjbxMKnc8V8gXjJOwr88dxksiw6IXPmI+ctKB8SDoEQctSEdevdYSNzJf8AwiR4yRFCvxR3+8gOkDD8SjZM4wmRQR/rkHACteD5CgZHkprR4tjNMqOTzYpDAiWOI1A+7yIBc8iVIk/6M5v8DXqTlEuyqYBPSn3lR5jxY94LK55hBfY4wEdEsNfD9HFF6MBJTQQ3j54B7uGhl30PDlFfHeOQZrWnX4z8HUTpjp4P+dpvDVaYCQ8EOTldLZ6pIAonIptzc7feDywS5hWe7yB5YYPchmayGyu5oyOBzjW2RJi300hj5JAHKnwCCZwOLF+XyREDGOz5Q9ipzga4H4L5GsIFT5MMJybKwflFNSd/1m48eUgSCL+c9JFkWSdgRJW8UblekgfBAxAG30SX5GDsceXom1kQ/T4F0xXzh9sInrnprCacIhEyZ0fWPbhOhH57yblDgHwFxnsExa7PB9YfNq2vRhfvK8yl35BMPzmyrMfHIj5x3MqRWrJIxyuPJ6RLt4F7vQT6GeJTCET6hYXN9/YjnDXEgzbQUDN9tGU4f17wpg1RnXXnrCZOlKib+XhM/lOF20GbKsU/CIEsmMKZ+SOWvEYvxF9rengpW0545VdYfa2uByZN4SWO2R4AojbxqN8GbZIoA4OCBybfUS84/PYmHHGOztbgGdAmsj5I8sSj4zW/YluyFrBqrPgkbBmzg8lwSpK4gVkV2YE+IkXhpgCzBDNTRg44vtuFwpRWFLacoDYsxgIqevFxvWfRuIAEp7GR18vDevvCi9Hsp8tcLARJ5PfWihCypJ3K8bgYIPIGy1skiwMY1JnvtawEElJkjnh4eg9eiPhPAu7AGwPHTwKfuIhjzHGegWW2gvcx9ZBV7X8zrAQH3qiFQVZG6P1JvonGgwBcxKfTeUY8m5mdp+skk8hCFPNjPa1u+f7vAAf0CiB6bx74b5HNEgYRswoY4MbIWXyRUs6TjSz5qQ3J0dsk4LGjSb5s85ADgW14RXbwLZDafiUz56woT9llBQeIOcAXbMSwyXOMCfS6M7UYtTYRo1o7jIZPUrcIei8C/XCPNkc4rJT5roK8lLaUg+zIrnINzcH3pvfxkzMzQlRTVcYhsn+ln6xAC410wd7xDYCMi+BxQymUE4PMIbW8jkzwaf6CwyiDa/6inWBR1V7OiUxhIfQb76WJrjirgz7yybKMFvyIpYbB/cj75wIEBc8ifdsfGWfy9pSor8YBBTLvfsNAvJvkPQHtwUDkHwtwTu5tletwXO7Lz3fFvgxr6xABpzxJ0W7OJfyUTDn184UW5AXfb6/eIQ5Yg6T4RWL4YIcLgVE4EOTKO558rFoRHr24KN5yw0mXQ1OzvPlkmjPJ50MgMBSQK5BNeM1qHshRF3G89gOPJ1YwDiETDut6ayRN0AzJc+liAJPs/Gn5yHyCgBK9aSypsPmuC/ByieTAYIHyt5APPG5Nhk7VYeDtkgC+JHGK4mUR/wBmckK3vtU0AWKNrbsLbfWQzDNjoX+feb8q6BWny9YZIcj68A7zoHobrsBs5z0vB7ZhziSfXl8Pk75xeATdWftHD0woh+4ANazgSGBNGPznoTNuaJQsYVLSB/Ni2DnCbFEAkr9RnKCKUnXzGLY6hFODAEB4T4cIH5PrOxEh9Q/cn4x/KvXMgH7wVAuR0bXhjOgx3QOl7wGKUHy+6Lj3iCqSEW/tbJwBLZ/Y89DEEkZm0XWzZzSBL8yKqyjKjTA6DvR2KxBfc9xqKwigUlewhlgF/OzU2oyD2R53sQf6xafCoJugZOMekvpqF1g4QkSl3aJxAe+GSQdX1ljkPRYRgiAIAzxdzRjrgY3we7voOMgFwI/Ex1ibMIy91fWJc8IfEtsYEh22gZlUNYVPkEl7aT1GbNjcST3FA5/sL48/eOVzYKh+peSFsOBOiJ5GexR2dkb6w2JBUT3Hzzhm9dEt8TaxRE0pETcBP+MPsmx74MyLw+TcboTqJxlBdpuU7/PeQYCAuhW8YvWyWkzC3nJu0hX0ZOUgUe+NtQnjQFqrZM3cHJYYL5CokfjAUEpDaQ9/GV3/AJAcm8HANLb8jhzjMnkjwkr4GBCF2SSgtTLnxkbISBQY99ZfshjpIOIeHhoq/HNZ2PkC/hFnjDH3FTXwhjo1s2eh6PxjuC4QTNtrCTe+NPaL1vCr4hBFWAIkYYNBN8BnZhHAY/DY0FzEjJn1/k85qps9T8PBwKcIRE8Yb9KrgmLmMA5Mt3zEbWRqUK6cobLGMRy+jfifw8Y8AGTNiEPQyYN0tir0Qjh+TG17AfP3lW2f3oFAtziuTyh9rs4AXG5ZnwL4wHU/oKi+FgDRPTFyNvnL8GnI5rxWF30HQ9OGcEh3BQ/Osl8EATbfPvDN6FeRo6ZwyptKfsckj4y5uD2C+uYxhj4JahMbo4y48jcedPCG1YFp9LAWww/kb+YxgLymYKF71+c81IRuWS0LWMcpfL7CaOE87gLgoPYv6xQHolxTmAdZ4MeySxwbQObCG5onh8hfWB0K0Q9V5waAa3o8BdAjD9/EEkfCGc+0Cw1sF4fKq7RNPWIGKikUa8GFhK7W+7saxxaRguV42chVolweQXJd5pQTJWrnk3h2VNOuF/tLHy+YJINKQspMPkAAjXxOFV1Sva7YxsWRFmBZHX3hmOX1MF2zOMATBLZj9bOTQcRo0nkSyt3K/wAcYNGpPHbq8BHLMxvoOd5KuhIf7E7zijSbA2uZOQB2AUDCZkyMHs3Io/EPGuee5HHrB2TYIe+hW8NaHAUANs3xnMk+IIj+sZlho6bl1/oyyNL7J7zZ6bBXzypzzoxwGtbTw+z0KkF7E4DwY5JriInH9n3bRlx+8YVAQQlr6g+sj/q3HjIgEdc6HhH84GkWO9+huMJ1zfIkbqMVctkgL/NZ2XDo/keM4hAn8gquXiTXaAQT77wDgjvZ7mC8QMk7O6lLwxiYiHxSpUD6w/yIKZTLEwcAuElUD53gBoQZmJ7UMjBHD6+wAnWIGKA+T71eAbDsIt1HwMINiPfc/BvIAIK/KaaEIYBH6rtTTyxxSBrpxeag7k8k7EwcEs+nVqBytHDbtxI8U83HscXxEnvFNankhIN+MhnWvt1aQ6zyTvaoofDD6QDa7kbjnITl7oE0WhnMFvgKYdgn1iOi7dElxPrKkszT2BRXOWFMw7odqXgP3W4GogYyqI4t0lVi8iXAan5ViOM7SAPKHBXTGGJ5iCOLaxUUT1U8nCfLovyvGMWb+V15YrDaLVMjYojZONODL4Kn9nOeADDC+XHxWJsEfqHFcLA4TC0YYOvIzRW2Y+IwoLipMEOtpc5sdTqIGnAecknwa0O9EnjIN+n7D5oZBZXE38JyuMiZU+L78j6xXCNooxtEwM6nz1Vq4OFGKlwGYgEEViFKgwPZ+axUZNAASEuwM3csBuQDKneK7BoH79s4vT/lIGgcBNEWN6C3Ms53rV+0L5zurAi34LLzwSAoRYgnW8XPRDP+fzimfMV32pw+o2dHHyLvaKIatLHAsbdgMbOTQ1Z5N93kdFyDutaPGIjvoU0/hjCDK3vv+Fhvz3ooUQpWSFfAD5JtOhgIJJ8e9DxhEcKegQY6o4Dvvtxrf/M9r5kc3zgL/EjQqaJPnDXKkx4ZUPI/AHukSTIwm5/gQfnEE6PIXDa/Wd8EvuF4zVuUK5H33gsw3yyI5PH8YJDCHSOjYAtHCfoep2BeKfhTK31DwiD30/QlNn5ygDo7Bl9mKGQUTH98TYwUHo87bc9YQh1Q+t4yGSEXKDYHxzkb2tG39YNsJnf/ADWHxMkyuHfOQSIMn0fmx9Y+j8a5/wBONcWXPPpuKyH9CRundZwhNnoRSyPNzLa2hMHCN6UnXqQZWd0xUkjniF8Y/QsGbO4hM4a0x1JJ6hErB+zo+S5KLwfRJvoZqs5VsVUj02ciCCZO74VEsYb2LUsM4JLhlfI3yEBkC0qVsk3vjJ/iT3BmcRe/S5P3OAjUaASe3TWGI+iB9aZwCQSWVS7dDPvyOSvNHDCKqPzQB4w8nV+1FNF5OkjAmHo/1jFyhA5LUTkMyjvf56yaIEgNJn5jAZhELwg5NAY40oWiVdcZHhNJBfKwMV0TXD4BPYy0dclxoBO3vPBNQYJJptvebowelPDP4zl6G1qdIwcBiCwBfjSg1gLR7juPAqcfZprqrJWQRIQjemw+skF0Gz/hv6w+BLvcccO88M2ZSJfw8sH+wj5FzlmDKDO10FvDNVffNcnOF8Dxp0hjF1thOVrAvNk2uzWG/r10fjKJchB+aALzwbCCZIrrhZuSio2BE/6M7Fn8QuCyCMM0BIefwoGX/vyCOsnXMuemCrGdVYC0ZTXWPbATfgREO87a68xUyxh+SEgkH2P8MsoEGPUKPE4exUM7Fr+LzXcGqdCex1nd0gdwJHeDstuVpD4z+thglko2f3kx2bZr0NjC/hm+eyuORnrbQPo0BziqYHbCTL0pwLm1oDxnOuZpgSpDzsmQUSIA8mMZdIzHU3NDN+PTKDN3OCVp8N1yFXxnLUgHljspB5AZ4gkR0jfOsGgb4bqtv851paDDMwNrL3xBSyPJytwRG6HlDGDHE7HwpOFWqvkz54Z/PsDs1oYtcgzPXzmxMgowRo9rD9vXPID4HOckSYix6MawuIcyvGvjeVudutTqc15BuAEKMc54uD5HyCvOFbMS26ChA95dlo3HwQd4wgJmN89tEY9+uWRtovrByPY3c82sFWGSx7/EZ5gBdeGufziSJPEk+1X94j/j4r+sRNKx8CdbeSyWvlLmYJxFS+Y16WsEgaXDYuN8ZyxADNowQvxgn5Kmgpld54HpFNLwQMH1sncGWIjzhHZPncEhrWCT+jqNeVmmO48yKf8AzPLbXFqtRnIfZO3tOOPGW9EWr5COBEcko/ethZXc22T2/rKAuuDyw50ckd+Wu55OOLR5KhmtrFtkD25u5E57OlNhfZwV4Kdn+Scm6LVng8NZCptlX8VGJlrr81OaG1SMDX1+MBswfSJIYUkqMkCamxJ4frnNvgmzoqR6GQAdAcBflvABven7nvJJCjb/AISKxDQ98ERyOMFMEnUmPOfmPHIOb5OtIb4Y9Zsn99Zornn2hH1h6NROjt1CxeSTU62SdYfqfqbvP2FauUP6wsKST6kDShrIqQSCXSnssSMYWwzpPZXMl5bCjzUyHy9Ztzzo3MTtYyCII4EmIsfxkM/PQTnjNFm655glMA1nUtNyAH3GxhKPAERfZ5QYhDqLPqK6zjQJIYv+iSMBh9FMuO1g5Dig4R/gHI+kOwUyfZyKZ0eXsntnO9XXDeN4fpW1LieMpiuPUrvNBlibh+WOcvfbBSHn3kEhcGdo8a3nxLaZY87M5PfdPq1GcmT48keyhnon5lIQTpYjN8wZfA6w6XekBwLVrJYMzNts0+hhAIQLSfJkwVORJfPw4He88C/LjytZFy+t/wC1iNP67ehzkKWQPIjTRk5MHxU8tzU4ACNpr06YFDOQKNIkgGIhJvL3LKqOoNrHoadFwTbphZB7KiC43fOa5ECqUHx5eQip57/pHATwfr8O8rbnltT0iP1hrq3R5Ht5IVYKvngAjCpbNmSeoC08bYhgqRzI3zhFjZ+1q/jKcmb0o0av85s0a31Zi8Bgx2rPb74wC+dnde+c3fUOgKUpHAAkOjBk8zxi2TbEhN0Ewf3hhfKIPnlZySY0PA2Nfzntap8/1nuYMQPmecGwZkptrkGectjVa8bHSzkfmYlVbGadk8TA4B4Jxyv1y7pElYZqoA4PMeMuBA12DPeBRIL0aT13l/Ox95BW0feyK6GJyRPETVUxjBZ41xaOpz/EGCRzyQtHCmJe/wAyD5wftPuqlH6xApiVPQL5c5a6O0dIE4iCOffC2TGXzSklHfD94uNz5CD+c0CGmbnphmMF8/xTY6zw2NxI89PBKAdPw66yFzJRfauOcXofVuBgT4bH8gKAj84ZI+VtxFoR+cB8I8e2jGU9mJSlISQZ/nEL3yBDd7l4VZOx9IrebXNj+S9/eK6s9EcDe5zZhq9piU+8LlOwORr4vIY4K/YJK+coAA9gMIbmDT+ssyUa6n4eCWQZ9o8G6OTezFhRtxXzg0fRN3I4t49uT10wCHJWKd6XCHKJYOAuiEOtcUMYZ43xwNZEPQe1JmDJ+cdaEBdx5S9Yt6BMezygFn4HcMcLgDLN9OmQZQqPGP5XVQSlaGLfgtx5XXnPeyQuGG/eQDPB5McnZxKYVmOKZvDU6P6CJkzlEW/SoV7AwPlhTzQ3mojUq9ntfrCVD4blCBwd4e/I0AkbnHyi6ctACH+cn+UvztYfnaG+25GVxvunBqnWGmjAgdRu4eBXpnwYvvGhCmAJ/qFigIrRt3KdTjA2UzySfDiziFJV4kgLBrgZqNTO8Bdc6dbfaGTxLXLvtgPBVVKouYQyBTRm0AE/I/vGPFME862KFZYCLvh+fIfWKgern1ZkrC76rzbcYyq8LkD8EYVArgQ3rxWWAT/HnyRvAoW4HwZOAHjci3YJZneGid9WGhYz2abPGxA5tYV981f+8YFCh0+OgXucRMjbuOAX3GLhgTRbXFxOUfmFylA3g/l7R884LQ1ybW/nJ8bhT/feCwyDr382Dg2TyyIS9bHOd6Mxx2NwcCXsxwSD5CVZ7W/5VWGQYPSpChyRj1Ackt+Y7wwi51uS4pkHB5MDypBL2znYFlmnqtSsATUWK7i53hG5IM/xaSeM2GZc7B0N4gPlt7/jWDmTw/bBV1itXohfCgQBgAKhg91raO/nLnguQkN/YxDzwWG+Lksc5TtO17f6wCoQEwX2q5ztoNrlzF5AJKvb7GujgAIERJ2decTmRwu4BFkA8ZIbqSZkd/x4yy/C5XKEJzio0hS4/GJSCVdtm6w3sWQp6kKxkBjgvqb5XjAB5BTFxoPImejPpmpWBgyeWUmq8LJimXqiC6Mzic78uOltVkBytSf8Xmxf1wNYpaVkQffhjOWNv61yhi5g2UUNTzH5wlkcUfJjFCLkVbAHrfebHdnkDrt4oMUYLRgJ8RnAAU83ZuVm6bkleV1WUiGSztgOyFp4ZbcBgKiO9rAOy2Ox43OLlpuYVtmAZziEf+FUjWIiZAlr+DN5xL34uB4/GLRmXJGuBxk8rdBDkh8vCPJMJlTUH/PEeQZGt07sDWEFVJXw4Tw2A6Rno3oYvJl1vn/RkqTzPdBAazfaOt07YBBd9bX7eAbEmhoc67xl81O+ChrEBoIPZsV7ZxdoJVQ4Z1PGaCjbAYV7SypH8sWeu8NjUGogBgSIWAGEf8e1JyEKJl6g69Z+O4hD6X3gUHegT79Qc43ptX4YwriIN7oeAvWVubNaXexnJsENGEy/c4Qz6gGrWq/OOCbhFwFWrJLz5Z9kGDzqLyeKIJngepwyJHZ+YHkjJlkgG3V6jjF9j1EWI0wAeNDYIbXk5PhEgUugcIjsw+y3Ei8Uh8Q4UTsuMiWDBc6a2DWStsAsPmpmcKMsjQIQb1OCA/jQMmlO+M/DQhvRJsYzU+Uij6hYBK+tURyCYGBFx6oyFPDxV0xGunrIIoBvlzxl7bCaCNQ+0fnGTCoqCiKVhziH3FSfL3gXCILQEqr2MnsKUmx1hmEOo6gzxj/x/C+8Mohc/Bb6IeXEy3I65Y3rI+9cwgP7ydhMqfqJ/WKlx+K2E1hDlmEY4miFkWaBH8gx5zb40/YUbIyxbjXPxnEGxx+/+5CaAX9B6iMECpZc0T8BnLuqEieOmc7MmZE9AeQ+M5ScNK5v/uftB+/VY41MyY4lyf3lnquuAhuYeTApSVS9HOV89TJJJODcd2XpSzxgjzJJp7KFn8ZZ3bemJR0Zxvl8Mk2qhEnJFKwR3VxbzTV/Judz7xocWJn7j/DAo2USFA8CBP3k0OnyLBNkayBwHZV+wYy5sF1rnhs4DG5lmo9QPWFI/HTTD+feGlW/eyCSf6zuJHP40kMCcmQEhCG6VYvRI7+w0ccNjgnn4ANYJJvjtb6g4DEV54aW/Obg9j7kkvwc6pwyXB0+esVzB+4/XWdmxzqGQwZjDMS7KvjwyM32qdP58PCdcnjtO9ZZ1QcQT+0BhAIIj8oi5yyI6UIcu7xPXR2qMPOGCdmYMx5A+hmhxbfCIusJUcohscbOFSNyEF5c45Adv6uM5M/5GJRwlFwNGT6fEbw8prXho2i8rduAZuUf1hf4XZsAyaXjPL4CtW4RybsTXHLn9YCAf3Q8EQAcb2H0QY9jLL0JgiY3/hnTEyOefBnGppfBEAEgDvHM/MIMWG/4yUgZt1vYyZFwGH9NsMZLYnz3BADQSyoRKvlx8xndEcIjxprGAGzqfnw8jcTXMohsZzK5id2oJ/WO688Sfmcg/sQNhxzn+IifAeQArHXmo3lcUDM+6vGmzHyX/IVVnPAi+ENlYw6AIJjoSwFjV7DkkeRLy1PCG25YCrKHwBKBTi9eslCOYW9Qcbqi9jYPjPdbgnwxMYd+wXupsm8pOAAnALfT4yLCg/Xr3gfgMlg/aLx6n4tacCcgQiBAqZdxnL/IUmixawQef0dC4XGbHzD217QnJU150bllhe8ju3uv0++85jkRZ3XeAEht9agwBAIytLgdkCMvRGyFs2fYwIuC25tyvjFTfEkeoe3hlymAeYWmsgqYAEH4HE4QSTJHdRtH1l8AfkKkexhNyv4TMbM4ABIEHsqJBkZCUBsy4cRNnJSkc7fDIGIF8ORz9hHCAJXEMo+WvjLJdOdvj0ySm4I/7o+cA5alB687C/GKSQbUU1wVIjKDKDRI4LfmVib8wdsSlK/0YYRZZ39NUE/vPT5XhMxfWCNLq4mvZHziFgCT5o3hR9FKmwOd5IY9OeBC5OFBt23StIecJ3yOAwtEmuM77e+AWsD27Ooj+Rg4LsFmeD+cElHyeOvkRimWUYhdLGJVQ0XbhE7yTyJ+QfmvrDY14SNGFWMMifGmJHCeRZ1ALA1rRGdOZhR839ZqWJ+th6YUio9dLdRik64nuuUTh8QWwYkKcAHowDZkKTMaxvwa+flj4zZh0PDE+M+tkK2vpRl8La3xMQMfB1Qnkx3hf7QMjQQrziiT3IgN8l5RE2Z01zoLJfwfhfV5vgleQiBu8ETemYiSXwMj3AICkCCBO/nNb4EpDytkVioyflgisImHv5b3iUMrf486rJ0VEoArq9kxgUwFwSCXQMlIjAA32UgjKgjx9YqBn+Q+AqzRL8D7lL8YSXGrHI/O8XDIdKLSe5zxTII2YrZhiiRArkaoX85tMm99S44rEQEUQqFwZVPCgf07+i8UuXaFcCVmhDosniic5RAnfJ2PL+srlpA2b8IjHPMBwqN6RiBX8aiiSIAykFvfwPMYUPTPyZ13iPkS3EECyuBnUjUzMFlqTiil7ZhkDeUYD/qGLreQLAkFrjms67Ovcag4DBMwQ3JGieawj55qmfFzmuBDH5C033hAHgSBMHpc55W2eOvg4I9+JTC4vHz5nilDBTwWJcW5s+ZGsUgCzZnYsxeGhzrguPEjFZ3fQ5vZU4KQaHzthClgEBcfuTsN6z/f5/neE3ekpcwuc4+d/jrvCBHmJJ7JAmcmgYgRC9zPLwxNcfQmeGAIiDRGvMqJz64C7PRUZBiKMUORRIFYhDYXIjclWcmGY8T0mBhC12x1tBCCcHN8GWpPW8Dp+St76l5fK52Ps8Qb2mT16y5kNEUCYrbGXufJ/EWsgKd9X8GcVinRY67kveSD0lXG2yfWD21+h6YedCNjRdSP8Mkvqo042L/WCzYMf9kzgs9yfGvjEOGjSaHhR+8cmQEunZ5HOcBhHQAonl5LVjlcE+hWBsuhFs9jgnOf7Y3flkgVNwSa/bOR6UKtoFDJi3JkdE8QBRHuSFrcVjHBmWVxy7F4OIiP87GsImBPVLjQGPaPZPD8ws2CWOv7b/DHRDP/AFqKP1ghD8Ou4KLw8ifgoXFAYLIXQ1rXA8TiFc+GJd3rvF+ae7JGwc6kAqfoNIhn3ho7ZAHHy2cJlH8EjWsJIVAcQHza34zYemep/UYAI3cVfRO/jPvrr2RhnpESaPo50Ptxx05rBH8POG72HRcUQnlDlweOJcA+cFr33wOliXmSPVcIjNi16TO9MHEIRU2N9DATzRL9P51hCDGgY54fr3l9RCOokRGP65K/XOc9c8EEpDLYBSLKuZ6wyHJDEXXCecwwAEv0ReFkxKJE/GEARM+5SHJGSFCAXob3zh+4EhBeDf5zpXo9a2NZrcCFqqP5xvgnnRK+gxnkJhPwAjogFYJFCo4OqM8YeU96JHB+cD90dFc0CKxlE9xPYAmlOfD2UJDuR1hgBkhEExf3l9zNQA7ElzgFNmP9WOwC506K4EnGaSW9BsBA6wAGBrRvt23jRPUzqhf/AHCY73NeVhO6W9GRxzgCbhEnsgjkZC6O/Mdz+8DEPi5+Duc2JnY67mcHyGUbaBHeDxx31B4WBmGe7YRYklTjjh2fMeiD8YubiZ1NwFk8nmv98Xg4GnBPPYdA/eTT2H0Dp/vFQZ2Kljg6f4wAeW5qAR8l4glJ8A8rxYwRyrOzOyPWFWDxN0vv+cUwFKI0SJEorI5W4PtgES3iFHaPE/ycUafkKmnjJ2hAiXKJB1nBGv4h7eKswhz9cLLtJUFqQTgdlOgef0R94dClRswD+nnWo7LNHkLxi2X1QXUrT9YEk4ZBOj/RxyIMBK1TqY/eRQggP1dtXlnktywBx+MlzOxQk6lThHJfkGgiBFz8589cljZ31xmgOhDE/wDMg2Ioc+DoHJ5JPjoK0lkaJLNBfPmLxaP1sAV8e4xUCmihKSUU8hjkiCLpNufjF8ko8JdEo4U3yxRnRBM7xdQGWIHwbfxnISdn772cEN0iQ/JC1hPEfz/PV4BMQgdpP3GJDZdEDtjfJxgryIJAJNfBYyHIFeBAHmcPGwLJYY/YwoQEIm4i6i7wiY/kQIJnYWbHrXRk8XvKPaFntnWOOBQPxdnIiK5TOzd4irMvQKO9rrDxbufyU0D4w0CNGftiUsgghxRP91nAHMUUQ5tlDKLlvcAaPwN4dnUxGgmxOO5soQG53NrJ5RMnXBHNfeSw1FwOw+Xlj80f8d4hzQ0EgDJHbxTp+eSWucQGpMFE+73gA1dGa1HhZ5pQAptS+MVMlWGfFwN1nrgRobXKIwc3waCjgQlgNh/HuQB+MNcmDRivFPGoW0CYBtT1j3LkNDfI5Bzg3qf12N5Mv4eq3QyoB+eBC6wGkbIJpKljPL4MDkPgmcVCWIB8efnFyxwj6ArE9VTPsfnKGwNUTz3A95wvlIZC+Jwz0WCTKgfSxBWUAaqf4yh+FBDzkALljk1xo4AOOV4/5iZ3YI4jxngDW/R0eMiFbRcv2HWMciRHD7+MqCiWbAYPGHkhhXQbc8fGJVahMIWpafeEDiyl0B86yNaA45d6eVDYJkLh0BWISA41yx8yIy+oLAm7gcHCq2AA+tFUQTicfZvHw7JJ+RzKOVb1fLtSsPyGXtIVRTwGB9XsiIKwjrqOPkN/7jP4ENW+oznRA9bUTrAq6rnYlSMtv1RJEnkqcDkkSFv9i0MjU2OWjPkrOkivYHk28TgxLi5u+7wKQgn0BF95vuPvyCkng2i531fX1k1rqDPlDeMLh92tmgybxxEV6AETLrNwYKFRRQDBvHMP7PB5SxHfsdnbAE5r8TPZZIa/GcEOlA91F5QZJa3B74nBQVL6mkAW8qdOtJEDgYK2wLHdCBgVTaIVwwyv94xyajZXnh+M6NkiiZW+Y/OW2l+FycG1DN0yp7jAp4NmZjl/zgkfY/M+8vgQQQtV0QMHHFQRI7wIlfq41KJGJo/jf8ZChnZeFMSBihkyGaCHJjIYqdrqJ0cTUrYU7hcxnfcij50TlczJ4HxGee78Spj7wT5HzNTYOaZA9hgSlyCTk+6kxo66wnlCF8NSji6/erneElssAKOX7QwTCXhCKo8zh1yNK+QHecNuA9EgwGucKBo/Km70J5w2fRCtQjRo4b2AnwHxqfOOON8KbSw/gMTr3X3nn0A9jrPlPHMswyRm/DX/ACjnuBZEL1LfWJnnz65DwL98UF1g++IPzEYdRSnx8Nka7CfynePgl8foE7GLkczou/ZymdfVQgAZwFIH/XEsnIGrMntOAHnyi9Aia9Y4GyLEmX7MZ1zsvbrgrxggcC5iyU6ybPPQ64nHqXtPkTyRGOrL5+HwMCQ/dAxoAVkut3Pkweckgrf7knYv/ucKBywvyd4QVy7h15JBP6x78aU9M4XLi5QVjvawyyqtv8aYxPvgi3IHUPBu+3B+RGOnHYa9LXnF9mjXgBh4Fosed/M5KpXAGnRZ3kch8Dk+4OdskmuvXaxuB/pD9jAE6JcNPkPl5Oj5frsJDPQDChI981iP3oPi77xgsXxab5Gsnks+U+o4rCnIA/rdgJHATEAcjScnC4MQMfxgVyADHXkhsYgpEgNh82zuMZRao2SxyDuRjmgwYYRPPycSiaI+ZeAAH5PcahwH9YuGOCMIxIvCHxoHQJ3N4QZO6h1pRZwXsC9AIdaxXrs3RMmr4w/mkH2F6GETDblyJEA4JHuNCBXj+8DCJlQAAX5RU5xopIe1PrG0PIL6B+c8iI6GnB1P1gtQdi4D52tZ2WOiuP2es55Pj4uisVDhFcwnxrNnZhOKEl1kzAcA8Fj/AHrDZoDZQfQglvLUXZERoeDm7b1vZg7GQwNij5f3GHY5NddaCydlxREualVlOBTkeWzucYm4JuR5+sKgtcUhHB5yndkBQvFDWFm6BjRPjkjWbQtCT1XbnBJfaLuBEanCEBQXIot+g8+BqGN/zi5ekwyIv6rBBRZP8uhS5xSCE/8Ag0dZCUBgGzrumM9qbJ3RRU+MHcag8hAHbGWIcfI2pg69Zy9eUTy5DyeSNkMMdA94kjCd7AFWdYvKl2Y+iPznGx2q3gTaUpQXR6s5wJ73PBP+eSJHhVAaL2Aw61PhKAQDrrvEOPY8BEcViKgnyZ3bG1nAn3xSL5E4dBtofN40XIVc7BB3GI9+jPcpLKNGk4mmzzgB+GEZZufBOQExwybFm94YLSlz4RAVnEE5S+WJN7xRMoxAC860yTtuDAEPKMYvhQBIMsRs5NSJZPqY6+MJHAkH22A9l4ipJ/vomQSPvEgaNeIP6zuSuTa4mZWagypO75KHOBlzLRPX/WRJTLjQHBZQk4WUJB2qDG/1jcVQiP8ANR1i6OzwsRH1kEwCy0S/njxnUEVJPr28AmOiOj+DOX0Xx0bMgxiUh3XzErl55obN8h0V1nTEcqQiJe8AvVJSFKPziDSPqHfokHAYmVdTXmsUdcgiqk5NiGjfx4BxU0waGxqGJyg4UqH6Jrr3gDkyP0FrZKnLgiEwhr9ViHd6f1luHUp8hqMqNAB9t8xOWtBVPsHWqwbK2QBApb5yyR9hgxXi8Bnzxz2DNC8iiw5mzPGz85OzSkXJ4UYpiSCLjVNE5Mo74qPs+8/h6ggsnjefHfmHEExi4HuwjOrIWDY4LU+Qyd5y/oT7bwjXPtVXWLlw+vuAI1g+IizHkGhyc04Kqbn3OBxfMBLof7vFAXIMz7wSSR98in/zN15NoiQnFnBwvINf8+serFFEMH+8Xdl+R2OsXCooxzJpQ8VzMEPthgDH1DPzwdSMQu77B50Azn810T9jA0kv8+f2cBL3x/pj7xng2DPkRqsAMjsn2u3OcCJDgWBr/PPG6Ei3PeQSdWRMAjpJ/OF76EFSW/jWFobbpqv9y83/AIVQscd4xfY4L9BT95BfyJMviWQ84QLYH+AGefc8RHAnrJuWSB45JUHGXbIPI4/mKyfngzHAqN4x4Aff8nFLT4HfBT/OQSdSjyTo0v5zfEqP8rAvvRJdT2chR+IIbUNfnD2irEUPJ7wcmNSdPesT++JgSlzhlA01Qmx6rKs9fwtiMMGPEFdgUr1eX74jQ+c41ZIMx24u94vfULVDV5xIPUDxdLALmST6lxpx/lh0UJYuJHV1lpwdAzcmFPGI+BsgI0P9WeZphhgWzWDmOWUhrucPU76PjDqENzxTabxsPn5jrfjJ5B1ofI3OCPTuTXGgjrOB5GyPwBCrJ1Wh65dHNafVXjY8zO3xMVhEAOQWr96J9Zxryy/kxOdwp+eWkMEVvrsL85c9W/2ApOB7izRXwhPnLcy9f45UvtTTtGRmm6kpE7IMvAzK7agxHdeVhqqA/kSJgZ29P+eYwP5JmH42NY/AO30YcA4YBv8AFQwdZOguFwuF/jnCiePAHQes9C5Ne5U535Wos2Z+MmfkbtJeMY5MkWwP8cp2r/lonJ4/k+cHxUo6ZLiAVrJA0eCZgEJ/OSKvciekpvL7qejyuTHWV8WaYhnzirXOzL2HQrGrund8bTjANfQSB5ds6z0QF1HCnAHKPPA4eC8g2Z0j5rAO/KoeCZB5ziZCHA5UbXHGXQqCrhJHZGWfx4fB8fOFEIgAxAB7aT1nVTXNOejGLYO1FJinAXxhHX6CZvTL9XkIlQezvnjN6QlcQsgoIJ9eStrFyR2BVyeXN6zg8oTIiiFyMRLoAmSLgxgTUoSILE54O1os/JkjDHcbW/fNnHzO44DR4/wxUexGg/ofeI8Bweh0Oys0bARJltmVrWEMWY3okz+cFvbTHNBg7zoG6qJAmf7wBkkKz8oYRF1Z3A2bxSQYf55Hq89yNE7k/XOJaMBA2R6FicCjoeULC/eSCGvgoPjzzgG1z4TbR283ZfBbOwSux8YjuNoAhnzsj85sg5fyGJ0sCiOih/PYfOQBIZBHGzk2hPEngF7g4vkozVsDmMIIkGe6aWsIVJHVC/B3h6IA5HzC4G8pmqk7Z3ldhq5SLBPAxL2x6UQ8QDvVm5f6OImyZ4HOnaOKz5hxb2IYx0F/3kA6Ay3uetghCYWU3y5DiYZPvF5qjYBgk9rEC4k6IkeH394vrcAga3pZCqCBELZ+nnfJgmI0v9OEHnjm44qsIHuATX+67xcMPRH4azVkdkypv2cLKCYYL0QX+MFBFPk2F6CwgPXYJCA55BOLglxJ/GLYJW5R8jQeQmCvMCkMQR0NsyDr4zzKsjuD4QvED4Q5IceMtCWN7HUOxj15EIJ5OjinsB+y+LOI6F2FHlGGsgoRuEpEkNsScDp9EquPIxOHCCeffWI2EL5fiG0vjBbN/A8IycPiJaSgJHBIbiblBiNIIZ8gmW5bDAzU2ePBTuvzgA2XtuzTGv4OCHCMCdu+mVgCktl3d061g3Dt8Ajq8l1OybCo7WCCVLMkCivt/WKOvTBuPxl+kno7Ic4uTm/6vKE8xAkxVsnPJ3Pm1tAYUijDr9XAJ3j+YHt1SjDxZlx8XQBzrZDO7t9Faw2OTajCkf6c/EumJF6rFEz4tjbYWIO/qnU0Lzux6nqZ9ZGjuiwjw9ZrimEVx8RlC4vVNuFvH4WyYP4AawQoHzTKixvAoPwrQg6n+8t9QypeihIzUs0S+LqS/rAdAGEuV5DYyyWYmD0Q/jH9MgQNIeu8+n+hsXnq+AvBhlYr7fCcOL13honrwT70MNSLaUh51ObBPcTI9gNcYAeRyrlv0GMY8vQAnRTvPlvuwa4D1lE/DCvYkk3rD9quI3s3ht8+wVt61iqSSd63vn5zyaoGprZYHOPw3T33HWOVSkuW/wCOcn+eFCc2vORpJ/fgpLJc+RNmYBjFKPrzshAp53FyQbAo3xibL1BcDwNYg55TEU3pBrIiCh9HxUDKkc1/BgCMk/oHxdsYmVQfcp8R/ObRAUDr2CdnIBcBvy3SEHJdmVEirtI4f9KHZgvOBoymJ3eHbiYOFgg+uJ/ZIwxc6qALr1hYpzO33VveeQeCX+Zk5qgo01yw9HHJZ6IcVLFBLDI7ccAj4c+c/wAOiAJCsLrLaHcUVtiXkMhcWCWHu2sg/IuPXJOID+/uEtZwyiehZHKOf4QU5sWMYpQClH4oDOdg80ABS0iMOvxb8AWRkpNnXmxeFrsHQv8AxGXOlOxP1Gf1BQneryuI1aYNzDwoaN2z87mM73H7GwNdZNmBztfp4FHhAcSz2CMFPo3APZusheeIrvDPLHEHXNXghKXoHjYMYfiPy7LAnAR/0foCH1jdEPydGPrAF4fUHeyAP1kU4F+6DJwfCgEgNIvrA/EOymR26H4zV0vbtg3jAmY0/TKzz22iRvwkMr+CbOvZOCgaGjwN3t4ItO0CfPkzj3E/jmsL2YZpiLfnFExN0DBFQid56Fv9HnIFGE3ZdbfOc+RCEGG+ZYWPMVUtvpDBoBi9sS15zTrZIh/rvvLe20mkvKODbPgXsl9mMUQhPm1BN3edCh9Fd2Py8AhMiFIT2UDOWNH7D/gYAIbJ3z72uMnWgkpERJ2MAUcENeJZOoyTB9gJMTZ5xCQAmEjR2Des/nwKpTAXnkprwaZHfeTtzHmIWgS8enSOqFiN5YkS1QZp7WsOkjbNlPtZXMABeN8MHFHLmyR50MUJm6c9AUpWISZgFhyCbQqcPAPybMryzeH4uVAUtd5a06KRY+pnEQdqN735B3n/AGpBUE60cXICNwbmerxUnzaun2azpgdcbD7CwKwPUX4doYD03ApDSvECfJKAcq57Zyyjvcs7g0usqJHAKUNknjeJlKNcME38RiO/RPwB3U5b7VSitGgcOlWiOfxQw2IlSPvuCcAHCQkSdAoZEI0DzWzUmM5iJ0fAxIsPk9t8NrjFYm2PP8DCn5ltGZLeGnXZ0WwmhvJbK16nToEZ7YT7XB6Iwhb0pBrhjE3IMqR7C/1Zu4mudvWCOV96kD895KJIHd6qLv6xkRRB/tfPxiNsVsreq384pTgxptWTbxVK6Gh5RnvCHzcKgAQng50WEPzEAvOXvpozBWuPOGYqQQtHYjJ69cl1rAaeudQNuC80nYu1w/ORG3GigAPULAINsgsyto95MAIdBiN6KnB0PYfiPA+cJ74SJi0Y6OJQAOZgGEUBnGntTr4r1kQ03J1VTbGH7BDF2Ax4OdHiBHNM8i8RiSKrkcnsnBzWvIGWKzkwdM9WD5xQoXJqwXELIAEOeZ5fZKxUASAdLmVSf4y+fLAIBNCZZx8gRMSiSIxBBAT64/lYg5NbMk8E63i5gskoSexjEBc0kfQJ5wgr2FwlZYB4K6Or+2HhEFkggP37wBhvwbPzDrEgUd7Rc5JbJ01x0LGJOT5JrkgxQwIIaHVlWFOf9VzaI3UZDqgHDA6AqfeL961zeU+DVgyuA395tholdcPxh0exqjf785tieZs/c4diB59cvn6wBR96knT/ALye1XYhvc4Ge+wfw2d5K8GmJjoLAGF8j3tyzl3R4MQ34GAxAAZQsjyBrOZNPmD0OM6KgV17vLEMebyLr42p3aySDTfYmKM6yLugjb5PkZ+I/wAjZwJdueWb2SDmzA1exBkcgYPiSSLnzo4nSH7INlZ0VwqLMqecYB+WfDGuhitUa47kNP1i/XrghAZLivjcoecJgs8iodOnkBIx5kyr4AywOxMaMmtnOjEitlxzeU2jJVORD0GMtuoAijSVgvBv2wDZa5JGf1YTGu2MJ5n2OmB531gPvguPagHN6gBbfajXGDc2gzsjYmXmwJFwmF65WU/ckaML5nPYfEW8EzzQWuNRi+FY6qBqcre/b5gPOdfUKJOicQhCkbsqLAGfi5h29fw80/TgAK1DTx/VDr7mMMQH+wOf8Mju9FsUGysqWJM7PQEkPBoVwyGSXO7ecM2UujKNTjR6cEoKP1xh8l6njR8nAWt80nAKnQw2Q0z2D5iNf8yNcKoPgEgRhJ8c/kjzjB4+ny90/nCqnYsEozUt/ODSY+gXA2WcKSHYEw1T7y42CCYbMVMVg7PtiCmeDLziiV/EuOMg1MCP+przhF/wVrvPK6Mpjut5FXXj7Mn5rPf05I146yV2jI8RBc5VyR0f7+cBako/rVS8p79Hl97OcpQCxczGGPFsaiD4wAxodxsIJ9fecckcQB5G8qubP7qSfnK6USCV/WAVYA4LBfecdXPBl7/vLM0ySCia4AOHryqLmeQYwMQA92I2r/nPmt2OZgYHYhlqHxHZyZiHw/qziEtFG3MuDofjI7EnyJYrcvxjJJHiOO2tZ5ZS30ubJOFhgTTkADoeeMXsPSCIHQYxvk7utMQys8khvai4k1g6OiVQnatYvf1/GeT8OLnovfWNwS06gGIZw2AOIDg0vrAbZAA1sIhengSjk+Af5YOQiQdgxyBvIrinCW2OjltNrx75jCHImNelu8iCChxyAWVlA7/LaNdVnLVUc6fBv1ikhRzoDYvrI8rfYrxGGR9QYWmtH959cLVF+RzfypiZreOEByuRosWwDnTc7Kn1M6zyQwkCSrtmznGy26evkZJJGnBnQf5xEKYB+u/GBH8MfIXAC95eiAy6nkIEtnBcK5uDKPFZ1Y38z4vASajSXqeCLWUb6AAqPnWJEwb6SVITgPNw7Sv1Gc1E0b2T4y++eUmlRM5IcjiBvknnOndHnnpYNnVnSmiZGWdd7c0H2cQP9GU5Y85ps8s+Cjw5yzAEi9gGa5ecmukeFPnOoDbhdRyf1k8n0J0+q/GfIdktxU1GRt07jU29YES7PLIhqvGJFQpiTDv6xG4MQfssNScCY6viiI+M7JYsvXCWW+PfbxA9Y0DzDcXTUDHuCvh6A4I+8GoEsQCPXU5A1PyQ6FusJLCo+Z2/jDNXBrUkesQSuOjfDNDKgQf+gMdYYDL80e1tkjEeSdzzw9B4Ok0T7dSXeLo+wSjcKSziEz3XSXo9YfLIFaqiO8Tn46Iv1ibZHgQBFmWiBhfii0zNxzkAVFRpq2lh2iWQJG6lfxgAviwK0Qp1klA8uK7DDeAGmKjrQIxk4CIO736w3qFKnm8HnSbmpPWAQFwoBD4I4M3nNT5RZU95qIFobPZDiMUxYZTYuiNcjNGXZ6Fz84gwZ+yJGjkaDli1JTiaEc/sobeIkwSBpjguOsm2J5YvQ3g0Kknc+XLwPbLE0i+J4GUeOoZS74yw/RDjwSd94JDEceoLLm8lCp5pydHZOHm7J2H/AAqwmNRBddHtHzhuH6Ev2hVYW5JWi0rPtDHqkj5FlaWSdADJK3iC2LM/byMIEQSZkGWGyqvHt9SD4bYxyL/z+s4EC3XsJucgMNAeLidn5w6V9EVft5VwCYHSqNvLCsHw4IFGM8Dq2ApxZcf1s0C9Zbhg0oYoCUSVnG78eyfvIoX2zGlErnCieSeyqdw/4wVMEmRXUSMo6Z6Al9Enf1gLRUf4ZLFcVL4z7hz5kl2RlwUpiiOCsHM1yFHiMNVvj+jrPY5pFmGv6wgeCRK+TgZc8ACYI87z3Ag1cZfvQLiwSikVho/vE9k9981rIkPuV/R3HjD6kM3ooEGdYih+zvR5+8PqWR+5CSwA9g0TC+GKwwW1z2v6wIuPMnfEOshkuWVZ1LX6zRrzPmb2feMta0ABI8krOhHAXTmjOCA+dzAMwxn4NvJwn1kdwXPHImsnwKpk+elmiTBY1URUvP38yAIDMxvNrQHDl+yMjkgxxCL3JxygfPWhpXnp835jv7wqmlMygKIiX5z8lA+Va/WGtOCWp+bGeaSDD+jN/OdWlFLsG8RSvR3xy9aw/tpC9mW11ln83NET7yRxewu03+MjhQYMfVKcPlMtgqxMG5wOQfCsyO3ij8gtHm5E4RW0yzPkUBn3JKexEROSKEkCT+97yfXy0qDGbKIJDK4JVVGG658ABf8A3H/wcGz84YleePipJ7wmPMD+BH8jCii431aPLeBWAQw44uH2c2r0ghHfMHxgAPrb+JCj4w/scGw0p3zGDdh/0NhZymzteK1OQ5XBBUVsp/eHuLMm6KIaWAtcIFVsL39HC1rgeWhtPDMeidnSBUnGUPKBN/K3h67+j6OF/wACJ4CiPeVbvVag1k751XM9sI8C1uTcbbw/hBmlda94EHEMSm3UjvLUHtUzY+cbAIH9fRw1OjfEHj9LBKJAkH8qLUZJmOkoWL94fY05FTBmMP0QqcnuCYGQPqTer7xRfg7/AG0+sGwDwDxagEkxl/NKeZHr3mhLHgX+PkZP19/GFdb83T08DmlTxp7rJ7c+mu7yafpVNwsGj4EmnCr9ZublcLTXvB9dU2Wsl7tflLzbw/4zR5n6FZDltw6vAvyHmpW8H5flK/3OaN0Wl394NO4V/Lt4en3ykedvGRXB/X6eD8DVPXtXktPDy9uP6yUHyK4/7edH1+r0smOfltN/54WwthzwE3kswW38u80HbCfKn9rBceHwX2nlEtxVR+sO0k37a94Evt9cRSwbXMcJz8OcFH4fq+3hctqNl/TnNe6U1r3gaLTU12nqsiH17I11mz0Hs4+sLtsF50tt4KFuy52+sNl1C8L9M2fJ9kWvfrNFuirrT7w7XJq7P6yfT1y3Oucllc8KUveFqWlHLm/yyZ+CT262sHXL9e7eBuXQ4Wn7eUC6fLW3nlLh+/LC9JufKjJpcdmo5LDylKbfr+8LerD8P7PByvfwlRgW+O/h7+sNw/03/wBeC57tN/l4LpsH03m4phtty09r3k7fJ8KndZuahPwS3kLaXaUfrOLbEq7+8+UrcL+X7w65nylK7wNTwfZyusCi7MnxrpZ9j3Z/3jDq4Bed9ecFh2h/mms/Sb2/OKS6NJVFZoQb+3CzZui7uF7WccRVUX6zVFN+NP3gvtrp79ZHhKvrPL5P67byOXbfpuc0dOfk/VVk/wBL4Pt4Xuo9o/WU+fNW7yeuuJU1WSk59uHg/IN2p9Yh7T29o+sjb8uHOB7dhcbaUY/RwofGRvrs0eP1hv8ANvaS95OuTDjb1+3jf7nb94yh3KtbXeSi+3wmK6xs+PvvywcW3r6vu8sfMq1K6r3n+/z/AAz/xABAEQABAgMDBwgIBAYDAAAAAAABAAIDBBESIVMFFTEyUZGhEzRBVGBhc9EQICJxcoGCshQjQqIkQFKw4fAwwfH/2gAIAQIBAT8A/t2wcG3dJVGuNelAWhRjKlWIuBxViLgcVYi4HFcnFwOKsRcDirEXA4qxF6vd71Yi9X4qxF6vxViLgcVYi9X4rk4uBxViLgcVYi4HFOhxTQWLO4pgjM0Ou+SdDi2uVebvl09k6Fzm00qO8w2i1tUXKTmxXNhOo4e4/JZ0msVu4LOk1iN3BZ0mcRu4LOk1iN3BZ0msRu4LOk1iN3BZ0msVu4LOk1iN3BZ0msRu4LOk1iN3BZ0meiK3cFnSaxW7gs6TWK3cFnSaxG7gjlSYJaHG0O6gUfKMajaNIPyUnHjxWNbFb7NK9k+9T/Mpo9IYf9CcBbaaX2QqDYqDYqDYqDYqDYqDYqDYqDYqDYqDYqKg2Kg2Kg2LRoTte/8ApWRSTLzJJJ/MA/bo93ZM6FP8ym/DKdrN+EfyD9f6VkTm014g+3smVP8AMpvwynazfhHqfJWjhjeuVGGrbVbCDDS0HVB6ETS9Ag3j1Xa/0rInNprxR9vZMqe5lN+GU7Wb8I9StL018ZwuhHguSjO9owyvwWUdP4Z24L8FlGl0u7cE6VmmkhzCHe5CG5oBiI0rdo9V+v8ASsin+GmvFH29kzoU/fJTfhlO1m/CPQa0NNKgy8WK4V1fmoeTIALXG1d3/wCF+Gg9DKbkwNZoY0+8AqzfWp3qwNp3p8JrwAVGkIDiLQcPn/hRpBzC7kAeTG2/3p8OMytW8CvaMNxpRwKgut62lCpcR0J2v9KyJzaa8Ufb2Un+ZTe3kynazfhHocSGkjSsmwg5lpzbgBd/2nObUsDQD6t4IKdZiDRei1nJlpaKp8k15qTdXuUxIUcBZAadijQTLkno4qhpaJuT9f6VkXm014o+3smdCn+YzfhlO1m/CPQ1pe5rQLyVItBg0Is0p3oUhlwAtV+VO9G7RemguoCKeqbQNzUzabijYEMvd7R3LKMs2JD5XlKO2U0phJaBS4Ep2v8ASsic2mvFH29kzoU/zKb8Mp2s34R6IUUQYjYhGhQsptZc0gAlScRkZjrbhbpcqsgA1ItKZyg2Gb7ys5Qz+sLOcPEas5Q/62rOUPEapefY6FUPBNVybIkMPtip96m5lks1rLQIdfuUxOQ3wKgaO/vQdahtdW6pTtf6VkTm014g+3smdCn+ZTXhlO1m/CPRQdOhPYCQWcVLTLoNLd9D0f8AulRZ5ryCA4f7709xfcdXirAVgKwFyYUF5hONT7HFZwY1tlrX71MRXTAAJvGhNFIJh/qQDRDY0VtdOxP1/pWRebTXiD7eyZU/zGb8Mp2s34R/IO1/pWRObTXiD7eybrgSVPXycwB+ppA96tBzhQ6BT/nGm7SiQ5xLdAasic2mO+IDwp2TLC5jiBoU6WtlBU9KtQnBwDamu1UZhHeqQ8I71RmEd6pDwjvVGYR3qjME71ZZhHeqMwjvVGYR3qjMI71ZZhHeqMwjvVGYR3qjMI70wOtflMI29KhtjAxQWm8HoWSGxBLvtC6vHsm6I5jHBra1UxCbGk7Nfb2LNJewiE6y+ul1aU7qBZlmusQuPksyzXWIXHyWZZrrEL93ksyzXWIXHyWZZrrELj5LMs11iFx8lmWa6xC4+SzLNdYhcfJZlmusQv3eSzLNdYhcfJZlmusQuPksyzXWIXHyWZZrrEL93ksyzXWIXHyQyNHDgYkdhHcTxuTclRvzPzRWh6T5LJsnEloER0SKK2tF9ffQ/wBm7//EAE8RAAECAgQGDAoGBgsAAAAAAAEAAgMRBAUSIQYxQVFhcQcQFhciVGBidIGR0RMjMjWTobGzwdIUIDZSU6NCQ1WSsPAVJCUmMzREY3Jzg//aAAgBAwEBPwD+GxdakRjHJO1CaQYgvyY0IrYvDbFuN0pZkWMMojYYa7FPHpkpc5S56ld5SlzlLnqXPUh9/wBSlzlLnqXPUuf6lLnKXOUucpPPBY/GvBZTABI0ouixXW3khrbpXHknCcfDwoQbMvmOwKqqPFp1OoFCjPaGvjyxZ9Sg7HWD0OFbjwoj4pOSJEHXKcluCwY4lGn/ANz1uCwZ4lH9M/vW4LBjiUf0z1uCwZ4lG9M/vW4HBniUf0z1uCwZ4lG9M/vW4LBjiUb0z+9bgsGOJRvTP71uCwY4lG9M/vW4LBjiUb0z+9bgsGOJR/TP71uCwZ4lG9M/vW4LBjiUf0z+9bgsGOJR/TPW4PBlrXu+gRzIfjPu9aibH+C4bB8HQ47YjiBfGeceiawvqKFg/WUGiwIk4T4doC8m4yxnkmbrxjGXKsGADhLUIOI0lnxQJkb7prIDtX59qZkfqY9av2uva602UwMmVZHzyArZMJNaVQSb/orveHkmcSwY+01Q3f6lnxQyyz7WQX7UlkuKuWfazobY2m+U3WhifPHIrZM851P0V3vDyTdiKwY+01Q9JZ8UMutadu/EMasvAm9svWgy15JmrX+360XumLMEEa1J1xF5OTNomg54udAAGtHQLtrPtN8putZImorZL851P0V3vDyTdiWDH2mqGfGWfFCV+tZtrIji0qGyK5tqwW6SJql1rVVFd/Wq3gw3DIZ/AFOwnwcBI/piB+8e5NwlwddjrmBLWe5Qawq2PJ9Ep0NxN4IJPqkrccgzeCzPJAjqV6yq5M8oZprI/UVsmec6n6K73h5JuxFYMfaaoeks+KGI611p5LWEgXquqyotTUd1JjxWyAubMWnHQCRNUvZErKI17qE2CIRcWi0yZlLQ/GqXX9bUyYi02IAfuue32OTYsVpJdFe4n7zi72lEuONx7UHOH6R7SoEalwXl8CkODsflO9gKq3DOuKA8MixGPh84E+1yqzDSgU8QoUeMyHSDjJstZ1cI351CMONDDoUQPuxgzb2hSc0kvkWaERwbbb2aLymte1zXOIsHEMoOnQvxNRWyX5zqjorveHkm7EVgwJYT1D0lnxQy611prbbg2eNYYU+n0+uo0GNHcIcKQsgmQHNBxk5QE4QywBrbLw7EMUs55xy/VayJDnEtXHSpCI7hFWTDIeHAszacpljCoWEtb1ePF1lH8GP0bRs6pBVZsi0iJGZBrGjMbCccbbZJH3nAmU9CoVOhUmCyPQiHwiMvcJprH22xHOudiGbqX4morZM851P0V3vDyTdiKwY+01Q9JZ8UMutexRHmHDfEBvAWEFKbS63pMeHdJ1zsoOorFDFoWopMycsvZjQIJsg8JWYlqVn17fDn5d2ZTFmVm/OhDLZPhQwYmefYpPZJzXERE+y5zGx/0hrv6lgBXjKNT2VbHeWsfc2QJmZE3yGrKm23PEVwkDkx9aH6zUVsmec6o6K73h5JuxFYMfaaoZ8ZZ8UMutdaittQ3MyFRtjEPiRojKYC114Fl0zO+XlKsavi1XTI1CpnBjwzlu/43X4/WnRm8EEeOdk68yqPAKLWNEbT40Wy12K53fJb3EL9oMlqd3re4gy84s7H963uYP7Rb2O71vcwf2g3sf3rCrBaLUMJkeG/wkN1zXAEC1lBmTNRIhhwWGNFHhzoldmksGKgOENK8EJthsYS915FrJiIlPMqpwIg1fW9FpsWNasEkXOEzZOlfr7ecASX4morZM851P0V3vDyTOIrBg/3mqGfGWfFNy61kxo3iSc2zEhxITnSGck/yNCrvByra8Ph6SxwpcpAtIaJXm/gkk351Vux/VdHpLo9Nc97RiAdi1zaoINHswYQaKKMQlf3Lwj8zexeEfmb2IxH5m9iER/3W9iptEh1lAfRaZDa6jOuxC0NIJBkdKOx3Vv0glkV/wBFnORdN2oGzLUqqq2i1TBfR6LCAhSN91onS4ATTW2YUENM4rMpvHehLw1sYzIIYomorZL851P0V3vDyTdiKwYuwmqDpLPihl1qVyvV8tC0LHtZLgr57XVchm2pZlLOEwcIa19/UVsmec6n6K73h5JkEtccgWCvDwlqBzbwaUwDXegDZc6V1qXWsgOX6nV9aWXbHqTTJzAc6susxHS4MitkvhVjU7hi+iu94eSZItsacs1gx4vCOoHOPAbSmn2oCDaIgOBebzfO5eM0oiIvGZlKIgIilE0rxilFRESeJSiZl4z+QvG/yFKJmPYpRMyPhBDivMSyGtneFKGQGOjtLnfFbKEIQq1qYM/w/ojr9PhDyTtta102kuySVApDqHGolMJm5kS1LLcoeyZVxhshx6uj25CZYIYv125rfJqbiFL7YfzrfIqbiFL7YfzrfJqfiFL/AC/nW+TU8v8AIUv8v51vk1Nkq+l9sP51vk1NxCl/l/Ot8mpuIUuf/n863yKn4hS+1nzobJNTZavpfbD+db5NT8QpfbD+db5NT3zoFL7YfzrfIqfiFL/L+db5FT5KBS/y/nW+TU9/9n0v8v507ZGqd8OKBQqUABlMO/QOGt8+qDaa2q6QHCHcS2HKf76wjryJX9Mh0pzbLGNsgG4yJnkJH8G7/9k=';
|
|
559
559
|
|
|
560
|
+
// Filter function to remove any null/undefined values.
|
|
560
561
|
const notEmpty = value => value !== null && value !== undefined;
|
|
561
562
|
const numberSeparator = (value, n = 0, x = 3, s = ' ', c = '.') => {
|
|
562
563
|
if (value === null || value === undefined) {
|
|
563
564
|
return null;
|
|
564
565
|
}
|
|
565
|
-
|
|
566
566
|
const re = `\\d(?=(\\d{${x || 3}})+${n > 0 ? '\\D' : '$'})`;
|
|
567
567
|
const num = value.toFixed(Math.max(0, ~~n));
|
|
568
568
|
return (c ? num.replace('.', c) : num).replace(new RegExp(re, 'g'), `$&${s || ','}`);
|
|
@@ -571,43 +571,30 @@ const FacetIdToTitle = f => {
|
|
|
571
571
|
switch (f) {
|
|
572
572
|
case MANUFACTURER:
|
|
573
573
|
return 'Tillverkare';
|
|
574
|
-
|
|
575
574
|
case MODEL_SERIES:
|
|
576
575
|
return 'Modell';
|
|
577
|
-
|
|
578
576
|
case FUEL_TYPE:
|
|
579
577
|
return 'Drivmedel';
|
|
580
|
-
|
|
581
578
|
case GEARBOX_TYPE:
|
|
582
579
|
return 'Växellåda';
|
|
583
|
-
|
|
584
580
|
case SEGMENT:
|
|
585
581
|
return 'Segment';
|
|
586
|
-
|
|
587
582
|
case DRIVING_WHEEL:
|
|
588
583
|
return 'Drivhjul';
|
|
589
|
-
|
|
590
584
|
case ENVIRONMENT_CLASS:
|
|
591
585
|
return 'Miljöklass';
|
|
592
|
-
|
|
593
586
|
case COLOR:
|
|
594
587
|
return 'Färg';
|
|
595
|
-
|
|
596
588
|
case PRICE:
|
|
597
589
|
return 'Pris';
|
|
598
|
-
|
|
599
590
|
case BRANCH:
|
|
600
591
|
return 'Anläggning';
|
|
601
|
-
|
|
602
592
|
case MILEAGE:
|
|
603
593
|
return 'Miltal';
|
|
604
|
-
|
|
605
594
|
case MODEL_YEAR:
|
|
606
595
|
return 'Modellår';
|
|
607
|
-
|
|
608
596
|
case LEASING_PRICE:
|
|
609
597
|
return 'Privatleasing';
|
|
610
|
-
|
|
611
598
|
default:
|
|
612
599
|
return f;
|
|
613
600
|
}
|
|
@@ -617,18 +604,15 @@ const dateTimeFormat = {
|
|
|
617
604
|
DayMonth: 2,
|
|
618
605
|
format: (value, format) => {
|
|
619
606
|
const date = new Date(value);
|
|
620
|
-
|
|
621
607
|
switch (format) {
|
|
622
608
|
case dateTimeFormat.YearMonth:
|
|
623
609
|
return dateFns.format(date, 'MMMM yyyy', {
|
|
624
610
|
locale: locale.sv
|
|
625
611
|
});
|
|
626
|
-
|
|
627
612
|
case dateTimeFormat.DayMonth:
|
|
628
613
|
return dateFns.format(date, 'd MMMM yyyy', {
|
|
629
614
|
locale: locale.sv
|
|
630
615
|
});
|
|
631
|
-
|
|
632
616
|
default:
|
|
633
617
|
return dateFns.format(date, 'yyyy-MM-dd HH:mm', {
|
|
634
618
|
locale: locale.sv
|
|
@@ -825,22 +809,16 @@ const getTranslatedSortOptionDisplayName = str => {
|
|
|
825
809
|
switch (str) {
|
|
826
810
|
case SortOptionDisplayName.PublishedAsc:
|
|
827
811
|
return 'Publicerad äldst';
|
|
828
|
-
|
|
829
812
|
case SortOptionDisplayName.PublishedDesc:
|
|
830
813
|
return 'Publicerad senast';
|
|
831
|
-
|
|
832
814
|
case SortOptionDisplayName.PriceAsc:
|
|
833
815
|
return 'Pris lägst';
|
|
834
|
-
|
|
835
816
|
case SortOptionDisplayName.Pricedesc:
|
|
836
817
|
return 'Pris högst';
|
|
837
|
-
|
|
838
818
|
case SortOptionDisplayName.ModelAsc:
|
|
839
819
|
return 'Årsmodell äldst';
|
|
840
|
-
|
|
841
820
|
case SortOptionDisplayName.Modeldesc:
|
|
842
821
|
return 'Årsmodell nyast';
|
|
843
|
-
|
|
844
822
|
default:
|
|
845
823
|
return str;
|
|
846
824
|
}
|
|
@@ -850,7 +828,6 @@ const Result = ({
|
|
|
850
828
|
children
|
|
851
829
|
}) => {
|
|
852
830
|
var _response$documentLis;
|
|
853
|
-
|
|
854
831
|
const {
|
|
855
832
|
loading,
|
|
856
833
|
response,
|
|
@@ -868,11 +845,9 @@ const Result = ({
|
|
|
868
845
|
value: so.query,
|
|
869
846
|
displayName: getTranslatedSortOptionDisplayName(so.displayName)
|
|
870
847
|
}));
|
|
871
|
-
|
|
872
848
|
if (loading && !useSkeletons) {
|
|
873
849
|
return React__default.createElement(Loader, null);
|
|
874
850
|
}
|
|
875
|
-
|
|
876
851
|
return React__default.createElement(Wrapper$1, null, React__default.createElement(Header, null, React__default.createElement(HeaderCount, null, React__default.createElement(ResultCount, null, `${numberSeparator(numberOfHits)} ${numberOfHits === 1 ? 'bil' : 'bilar'}`)), sortOptions && selectedSortOption && React__default.createElement(HeaderSort, null, React__default.createElement(SortSelect, {
|
|
877
852
|
value: selectedSortOption,
|
|
878
853
|
options: sortOptions,
|
|
@@ -891,17 +866,14 @@ const Result = ({
|
|
|
891
866
|
|
|
892
867
|
function ownKeys(object, enumerableOnly) {
|
|
893
868
|
var keys = Object.keys(object);
|
|
894
|
-
|
|
895
869
|
if (Object.getOwnPropertySymbols) {
|
|
896
870
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
897
871
|
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
898
872
|
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
899
873
|
})), keys.push.apply(keys, symbols);
|
|
900
874
|
}
|
|
901
|
-
|
|
902
875
|
return keys;
|
|
903
876
|
}
|
|
904
|
-
|
|
905
877
|
function _objectSpread2(target) {
|
|
906
878
|
for (var i = 1; i < arguments.length; i++) {
|
|
907
879
|
var source = null != arguments[i] ? arguments[i] : {};
|
|
@@ -911,10 +883,8 @@ function _objectSpread2(target) {
|
|
|
911
883
|
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
912
884
|
});
|
|
913
885
|
}
|
|
914
|
-
|
|
915
886
|
return target;
|
|
916
887
|
}
|
|
917
|
-
|
|
918
888
|
function _defineProperty(obj, key, value) {
|
|
919
889
|
if (key in obj) {
|
|
920
890
|
Object.defineProperty(obj, key, {
|
|
@@ -926,7 +896,6 @@ function _defineProperty(obj, key, value) {
|
|
|
926
896
|
} else {
|
|
927
897
|
obj[key] = value;
|
|
928
898
|
}
|
|
929
|
-
|
|
930
899
|
return obj;
|
|
931
900
|
}
|
|
932
901
|
|
|
@@ -1024,14 +993,11 @@ const H2 = styled__default(HeadingBase).attrs(props => ({
|
|
|
1024
993
|
}))`
|
|
1025
994
|
font-size: 1.5rem;
|
|
1026
995
|
`;
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
as: props.as || 'h3',
|
|
996
|
+
const H3 = styled__default(HeadingBase).attrs(props => ({
|
|
997
|
+
as: props.as || 'h3'
|
|
1030
998
|
}))`
|
|
1031
999
|
font-size: 1.125rem;
|
|
1032
1000
|
`;
|
|
1033
|
-
*/
|
|
1034
|
-
|
|
1035
1001
|
const H4 = styled__default(HeadingBase).attrs(props => ({
|
|
1036
1002
|
as: props.as || 'h4'
|
|
1037
1003
|
}))`
|
|
@@ -1049,7 +1015,6 @@ export const H6 = styled(HeadingBase).attrs<{ as: string }>((props) => ({
|
|
|
1049
1015
|
font-size: 0.67rem;
|
|
1050
1016
|
`;
|
|
1051
1017
|
*/
|
|
1052
|
-
|
|
1053
1018
|
const VisualHeading = styled__default.div.attrs(() => ({
|
|
1054
1019
|
className: 'wayke__theme wayke__font--bold'
|
|
1055
1020
|
}))`
|
|
@@ -1208,11 +1173,9 @@ const Portal = ({
|
|
|
1208
1173
|
children
|
|
1209
1174
|
}) => {
|
|
1210
1175
|
const el = React__default.useRef(document.getElementById(id) || document.createElement('div'));
|
|
1211
|
-
|
|
1212
1176
|
if (!el.current) {
|
|
1213
1177
|
return null;
|
|
1214
1178
|
}
|
|
1215
|
-
|
|
1216
1179
|
const {
|
|
1217
1180
|
current
|
|
1218
1181
|
} = el;
|
|
@@ -1220,12 +1183,10 @@ const Portal = ({
|
|
|
1220
1183
|
React__default.useEffect(() => {
|
|
1221
1184
|
if (dynamic) {
|
|
1222
1185
|
current.id = id;
|
|
1223
|
-
|
|
1224
1186
|
if (document.body) {
|
|
1225
1187
|
document.body.appendChild(current);
|
|
1226
1188
|
}
|
|
1227
1189
|
}
|
|
1228
|
-
|
|
1229
1190
|
return () => {
|
|
1230
1191
|
if (dynamic && current.parentElement) {
|
|
1231
1192
|
current.parentElement.removeChild(current);
|
|
@@ -1234,7 +1195,6 @@ const Portal = ({
|
|
|
1234
1195
|
}, [id]);
|
|
1235
1196
|
return ReactDOM.createPortal(children, current);
|
|
1236
1197
|
};
|
|
1237
|
-
|
|
1238
1198
|
var Portal$1 = React__default.memo(Portal);
|
|
1239
1199
|
|
|
1240
1200
|
const Panel = ({
|
|
@@ -1370,7 +1330,6 @@ const AccordionItem = ({
|
|
|
1370
1330
|
block: true
|
|
1371
1331
|
}))), React__default.createElement(Body$2, null, children));
|
|
1372
1332
|
};
|
|
1373
|
-
|
|
1374
1333
|
const Accordion = ({
|
|
1375
1334
|
children
|
|
1376
1335
|
}) => React__default.createElement(List$1, null, children);
|
|
@@ -1462,7 +1421,6 @@ const ChecklistItem = ({
|
|
|
1462
1421
|
})), React__default.createElement(ActionLabel, {
|
|
1463
1422
|
className: active ? 'wayke__theme wayke__font--bold wayke__color--primary-text' : ''
|
|
1464
1423
|
}, label)));
|
|
1465
|
-
|
|
1466
1424
|
const Checklist = ({
|
|
1467
1425
|
items,
|
|
1468
1426
|
radio
|
|
@@ -1470,7 +1428,6 @@ const Checklist = ({
|
|
|
1470
1428
|
if (!(items !== null && items !== void 0 && items.length)) {
|
|
1471
1429
|
return null;
|
|
1472
1430
|
}
|
|
1473
|
-
|
|
1474
1431
|
return React__default.createElement(List$2, null, items.map(item => React__default.createElement(ChecklistItem, {
|
|
1475
1432
|
key: item.label,
|
|
1476
1433
|
label: item.label,
|
|
@@ -1613,14 +1570,12 @@ const ColorSelectItem = ({
|
|
|
1613
1570
|
className: active ? 'wayke__theme wayke__color--primary-text wayke__font--bold' : ''
|
|
1614
1571
|
}, label)));
|
|
1615
1572
|
};
|
|
1616
|
-
|
|
1617
1573
|
const ColorSelect = ({
|
|
1618
1574
|
items
|
|
1619
1575
|
}) => {
|
|
1620
1576
|
if (!items) {
|
|
1621
1577
|
return null;
|
|
1622
1578
|
}
|
|
1623
|
-
|
|
1624
1579
|
return React__default.createElement(List$3, null, items.map(item => React__default.createElement(ColorSelectItem, {
|
|
1625
1580
|
key: item.label,
|
|
1626
1581
|
label: item.label,
|
|
@@ -1636,40 +1591,28 @@ const getHexColorFromDisplayName = displayName => {
|
|
|
1636
1591
|
switch (displayName) {
|
|
1637
1592
|
case COLOR_WHITE.displayName:
|
|
1638
1593
|
return COLOR_WHITE.hex;
|
|
1639
|
-
|
|
1640
1594
|
case COLOR_BLACK.displayName:
|
|
1641
1595
|
return COLOR_BLACK.hex;
|
|
1642
|
-
|
|
1643
1596
|
case COLOR_GRAY.displayName:
|
|
1644
1597
|
return COLOR_GRAY.hex;
|
|
1645
|
-
|
|
1646
1598
|
case COLOR_SILVER.displayName:
|
|
1647
1599
|
return COLOR_SILVER.hex;
|
|
1648
|
-
|
|
1649
1600
|
case COLOR_BLUE.displayName:
|
|
1650
1601
|
return COLOR_BLUE.hex;
|
|
1651
|
-
|
|
1652
1602
|
case COLOR_RED.displayName:
|
|
1653
1603
|
return COLOR_RED.hex;
|
|
1654
|
-
|
|
1655
1604
|
case COLOR_BROWN.displayName:
|
|
1656
1605
|
return COLOR_BROWN.hex;
|
|
1657
|
-
|
|
1658
1606
|
case COLOR_GREEN.displayName:
|
|
1659
1607
|
return COLOR_GREEN.hex;
|
|
1660
|
-
|
|
1661
1608
|
case COLOR_ORANGE.displayName:
|
|
1662
1609
|
return COLOR_ORANGE.hex;
|
|
1663
|
-
|
|
1664
1610
|
case COLOR_YELLOW.displayName:
|
|
1665
1611
|
return COLOR_YELLOW.hex;
|
|
1666
|
-
|
|
1667
1612
|
case COLOR_PURPLE.displayName:
|
|
1668
1613
|
return COLOR_PURPLE.hex;
|
|
1669
|
-
|
|
1670
1614
|
case COLOR_BEIGE.displayName:
|
|
1671
1615
|
return COLOR_BEIGE.hex;
|
|
1672
|
-
|
|
1673
1616
|
default:
|
|
1674
1617
|
return '#fff';
|
|
1675
1618
|
}
|
|
@@ -1824,7 +1767,6 @@ const getSteps = steps => {
|
|
|
1824
1767
|
steps.forEach((step, index) => {
|
|
1825
1768
|
if (index !== 0) {
|
|
1826
1769
|
const c = step - steps[index - 1];
|
|
1827
|
-
|
|
1828
1770
|
if (c < current) {
|
|
1829
1771
|
current = c;
|
|
1830
1772
|
}
|
|
@@ -1832,7 +1774,6 @@ const getSteps = steps => {
|
|
|
1832
1774
|
});
|
|
1833
1775
|
return current;
|
|
1834
1776
|
};
|
|
1835
|
-
|
|
1836
1777
|
const RangeSlider = ({
|
|
1837
1778
|
loading,
|
|
1838
1779
|
values,
|
|
@@ -1853,9 +1794,7 @@ const RangeSlider = ({
|
|
|
1853
1794
|
const currentMin = formatValues ? numberSeparator(current[0]) : current[0];
|
|
1854
1795
|
const currentMax = formatValues ? numberSeparator(current[1]) : current[1];
|
|
1855
1796
|
const equal = domain[0] === domain[1];
|
|
1856
|
-
|
|
1857
1797
|
const _maxPrefix = maxPrefix && domain[1] === current[1] ? maxPrefix : undefined;
|
|
1858
|
-
|
|
1859
1798
|
React.useEffect(() => {
|
|
1860
1799
|
if (values[0] !== current[0] || values[1] !== current[1]) {
|
|
1861
1800
|
setCurrent(values);
|
|
@@ -1923,25 +1862,19 @@ const RangeSlider = ({
|
|
|
1923
1862
|
|
|
1924
1863
|
const getInitialValues = (domain, facet, searchParams) => {
|
|
1925
1864
|
const facetMin = domain[0]; //parseInt(facet.filters[0].displayName, 10);
|
|
1926
|
-
|
|
1927
1865
|
const _queryMin = (searchParams === null || searchParams === void 0 ? void 0 : searchParams.get(`${facet.id}.min`)) || null;
|
|
1928
|
-
|
|
1929
1866
|
const facetMax = domain[domain.length - 1]; //parseInt(facet.filters[facet.filters.length - 1].displayName, 10);
|
|
1930
|
-
|
|
1931
1867
|
const _queryMax = (searchParams === null || searchParams === void 0 ? void 0 : searchParams.get(`${facet.id}.max`)) || null;
|
|
1932
|
-
|
|
1933
1868
|
const queryMin = parseInt(_queryMin === null ? `${facetMin}` : _queryMin, 10);
|
|
1934
1869
|
const min = facetMin > queryMin ? facetMin : queryMin;
|
|
1935
1870
|
const queryMax = parseInt(_queryMax === null ? `${facetMax}` : _queryMax, 10);
|
|
1936
1871
|
const max = queryMax > facetMax ? facetMin : queryMax;
|
|
1937
1872
|
return min || max ? [min ? min : domain[0], max ? max : domain[1]] : domain;
|
|
1938
1873
|
};
|
|
1939
|
-
|
|
1940
1874
|
const averageDelta = ([x, ...xs]) => {
|
|
1941
1875
|
if (x === undefined) return NaN;
|
|
1942
1876
|
return xs.reduce(([acc, last], x) => [acc + (x - last), x], [0, x])[0] / xs.length;
|
|
1943
1877
|
};
|
|
1944
|
-
|
|
1945
1878
|
const getSteps$1 = initialAllValues => {
|
|
1946
1879
|
const delta = averageDelta(initialAllValues);
|
|
1947
1880
|
const max = Math.floor(initialAllValues[initialAllValues.length - 1] * 1000) / 1000;
|
|
@@ -1949,14 +1882,12 @@ const getSteps$1 = initialAllValues => {
|
|
|
1949
1882
|
if (delta <= 1000 && delta >= 500) return new Array(max / 500 + 1).fill('').map((x, i) => i * 500);
|
|
1950
1883
|
return initialAllValues;
|
|
1951
1884
|
};
|
|
1952
|
-
|
|
1953
1885
|
const RangeFacet = ({
|
|
1954
1886
|
facet,
|
|
1955
1887
|
unit,
|
|
1956
1888
|
formatValues
|
|
1957
1889
|
}) => {
|
|
1958
1890
|
var _initialFacet$filters, _initialFacet$filters2, _queryFilter$searchPa3;
|
|
1959
|
-
|
|
1960
1891
|
const {
|
|
1961
1892
|
loading,
|
|
1962
1893
|
queryFilter,
|
|
@@ -1968,9 +1899,7 @@ const RangeFacet = ({
|
|
|
1968
1899
|
const [state, setValues] = React.useState(undefined);
|
|
1969
1900
|
React.useEffect(() => {
|
|
1970
1901
|
const _initialAllValues = (initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.filters.map(f => parseInt(f.displayName.replace(/[\<\>+-]+/g, ''), 10))) || [1, 2];
|
|
1971
|
-
|
|
1972
1902
|
const _steps = getSteps$1(_initialAllValues);
|
|
1973
|
-
|
|
1974
1903
|
const domain = [_steps[0], _steps[_steps.length - 1]];
|
|
1975
1904
|
setValues({
|
|
1976
1905
|
id: initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.id,
|
|
@@ -1982,13 +1911,11 @@ const RangeFacet = ({
|
|
|
1982
1911
|
React.useEffect(() => {
|
|
1983
1912
|
if (state !== null && state !== void 0 && state.id) {
|
|
1984
1913
|
var _queryFilter$searchPa, _queryFilter$searchPa2;
|
|
1985
|
-
|
|
1986
1914
|
const init = initialFacet !== null && initialFacet !== void 0 && initialFacet.filters.length ? getInitialValues(state.domain, initialFacet, queryFilter.searchParams) : [0, 0];
|
|
1987
1915
|
const minStr = (_queryFilter$searchPa = queryFilter.searchParams) === null || _queryFilter$searchPa === void 0 ? void 0 : _queryFilter$searchPa.get(`${facet.id}.min`);
|
|
1988
1916
|
const maxStr = (_queryFilter$searchPa2 = queryFilter.searchParams) === null || _queryFilter$searchPa2 === void 0 ? void 0 : _queryFilter$searchPa2.get(`${facet.id}.max`);
|
|
1989
1917
|
const min = minStr ? parseFloat(minStr) : init[0];
|
|
1990
1918
|
const max = maxStr ? parseFloat(maxStr) : init[1];
|
|
1991
|
-
|
|
1992
1919
|
if (min !== state.values[0] || max !== state.values[1]) {
|
|
1993
1920
|
onChange([min, max]);
|
|
1994
1921
|
}
|
|
@@ -2004,15 +1931,12 @@ const RangeFacet = ({
|
|
|
2004
1931
|
query.set('hits', '30');
|
|
2005
1932
|
query.delete(`${facet.id}.min`);
|
|
2006
1933
|
query.delete(`${facet.id}.max`);
|
|
2007
|
-
|
|
2008
1934
|
if (nextValues[0] !== state.domain[0]) {
|
|
2009
1935
|
query.set(`${facet.id}.min`, `${nextValues[0]}`);
|
|
2010
1936
|
}
|
|
2011
|
-
|
|
2012
1937
|
if (nextValues[1] !== state.domain[1]) {
|
|
2013
1938
|
query.set(`${facet.id}.max`, `${nextValues[1]}`);
|
|
2014
1939
|
}
|
|
2015
|
-
|
|
2016
1940
|
query.sort();
|
|
2017
1941
|
onFilterUpdate(query.toString());
|
|
2018
1942
|
}
|
|
@@ -2045,39 +1969,33 @@ const FacetSelector = ({
|
|
|
2045
1969
|
return React__default.createElement(ChecklistFacet, {
|
|
2046
1970
|
facet: facet
|
|
2047
1971
|
});
|
|
2048
|
-
|
|
2049
1972
|
case COLOR:
|
|
2050
1973
|
return React__default.createElement(ColorSelectFacet, {
|
|
2051
1974
|
facet: facet
|
|
2052
1975
|
});
|
|
2053
|
-
|
|
2054
1976
|
case PRICE:
|
|
2055
1977
|
return React__default.createElement(RangeFacet, {
|
|
2056
1978
|
facet: facet,
|
|
2057
1979
|
unit: "kr",
|
|
2058
1980
|
formatValues: true
|
|
2059
1981
|
});
|
|
2060
|
-
|
|
2061
1982
|
case LEASING_PRICE:
|
|
2062
1983
|
return React__default.createElement(RangeFacet, {
|
|
2063
1984
|
facet: facet,
|
|
2064
1985
|
unit: "kr/m\u00E5n",
|
|
2065
1986
|
formatValues: true
|
|
2066
1987
|
});
|
|
2067
|
-
|
|
2068
1988
|
case MILEAGE:
|
|
2069
1989
|
return React__default.createElement(RangeFacet, {
|
|
2070
1990
|
facet: facet,
|
|
2071
1991
|
unit: "mil",
|
|
2072
1992
|
formatValues: true
|
|
2073
1993
|
});
|
|
2074
|
-
|
|
2075
1994
|
case MODEL_YEAR:
|
|
2076
1995
|
return React__default.createElement(RangeFacet, {
|
|
2077
1996
|
facet: facet,
|
|
2078
1997
|
unit: "\u00E5r"
|
|
2079
1998
|
});
|
|
2080
|
-
|
|
2081
1999
|
default:
|
|
2082
2000
|
return null;
|
|
2083
2001
|
}
|
|
@@ -2119,17 +2037,14 @@ const isSelected = (f, searchParams) => {
|
|
|
2119
2037
|
case MILEAGE:
|
|
2120
2038
|
case MODEL_YEAR:
|
|
2121
2039
|
return searchParams.has(`${f.id}.min`) || searchParams.has(`${f.id}.max`) ? 1 : 0;
|
|
2122
|
-
|
|
2123
2040
|
default:
|
|
2124
2041
|
return f.filters.filter(filter => filter.selected).length;
|
|
2125
2042
|
}
|
|
2126
2043
|
};
|
|
2127
|
-
|
|
2128
2044
|
const Filter = ({
|
|
2129
2045
|
filterList
|
|
2130
2046
|
}) => {
|
|
2131
2047
|
var _facets$filter;
|
|
2132
|
-
|
|
2133
2048
|
const {
|
|
2134
2049
|
queryFilter,
|
|
2135
2050
|
initialFacets,
|
|
@@ -2141,21 +2056,17 @@ const Filter = ({
|
|
|
2141
2056
|
const [facet, setFacet] = React.useState();
|
|
2142
2057
|
const onSelectFacet = React.useCallback(nextFacet => setFacet(nextFacet), []);
|
|
2143
2058
|
const onClose = React.useCallback(() => setFacet(undefined), []);
|
|
2144
|
-
|
|
2145
2059
|
if (!facets) {
|
|
2146
2060
|
return null;
|
|
2147
2061
|
}
|
|
2148
|
-
|
|
2149
2062
|
const filterNames = filterList ? filterList.map(x => x.filterName) : undefined;
|
|
2150
2063
|
const filteredFacets = facets === null || facets === void 0 ? void 0 : (_facets$filter = facets.filter(x => x.id !== 'segment')) === null || _facets$filter === void 0 ? void 0 : _facets$filter.filter(f => filterNames ? filterNames.includes(f.id) : true).sort((a, b) => filterNames ? filterNames.indexOf(a.id) - filterNames.indexOf(b.id) : 0).map(x => {
|
|
2151
2064
|
const match = filterList === null || filterList === void 0 ? void 0 : filterList.find(y => y.filterName === x.id);
|
|
2152
|
-
|
|
2153
2065
|
if (match !== null && match !== void 0 && match.displayName) {
|
|
2154
2066
|
return _objectSpread2(_objectSpread2({}, x), {}, {
|
|
2155
2067
|
displayName: match.displayName
|
|
2156
2068
|
});
|
|
2157
2069
|
}
|
|
2158
|
-
|
|
2159
2070
|
return _objectSpread2(_objectSpread2({}, x), {}, {
|
|
2160
2071
|
displayName: FacetIdToTitle(x.id)
|
|
2161
2072
|
});
|
|
@@ -2428,7 +2339,6 @@ const UspItem = ({
|
|
|
2428
2339
|
block: true
|
|
2429
2340
|
})))));
|
|
2430
2341
|
};
|
|
2431
|
-
|
|
2432
2342
|
const UspList = ({
|
|
2433
2343
|
items,
|
|
2434
2344
|
small
|
|
@@ -2436,7 +2346,6 @@ const UspList = ({
|
|
|
2436
2346
|
if (!items) {
|
|
2437
2347
|
return null;
|
|
2438
2348
|
}
|
|
2439
|
-
|
|
2440
2349
|
return React__default.createElement(List$5, {
|
|
2441
2350
|
isSmall: small
|
|
2442
2351
|
}, items.map((item, index) => React__default.createElement(UspItem, {
|
|
@@ -2450,11 +2359,9 @@ const PathContext = React.createContext(undefined);
|
|
|
2450
2359
|
|
|
2451
2360
|
const usePath = () => {
|
|
2452
2361
|
const context = React.useContext(PathContext);
|
|
2453
|
-
|
|
2454
2362
|
if (!context) {
|
|
2455
2363
|
throw new Error('usePath must be used within a PathProvider');
|
|
2456
2364
|
}
|
|
2457
|
-
|
|
2458
2365
|
return context;
|
|
2459
2366
|
};
|
|
2460
2367
|
|
|
@@ -2475,13 +2382,10 @@ const ProductCard = ({
|
|
|
2475
2382
|
const {
|
|
2476
2383
|
pushState
|
|
2477
2384
|
} = usePath();
|
|
2478
|
-
|
|
2479
2385
|
const _onClick = React.useMemo(() => onClick ? () => onClick(id) : undefined, [id]);
|
|
2480
|
-
|
|
2481
2386
|
const onHrefClick = React.useCallback(e => {
|
|
2482
2387
|
if (pathRoute && href) {
|
|
2483
2388
|
const reg = new RegExp('^((http|https)://)|//');
|
|
2484
|
-
|
|
2485
2389
|
if (!pathRoute.match(reg) && !pathRoute.startsWith(location.origin)) {
|
|
2486
2390
|
e.preventDefault();
|
|
2487
2391
|
pushState(href);
|
|
@@ -2514,16 +2418,12 @@ const ProductCard = ({
|
|
|
2514
2418
|
|
|
2515
2419
|
const resolveImage = document => {
|
|
2516
2420
|
var _document$featuredIma, _document$featuredIma2, _document$featuredIma3;
|
|
2517
|
-
|
|
2518
2421
|
const img = (_document$featuredIma = document.featuredImage) === null || _document$featuredIma === void 0 ? void 0 : (_document$featuredIma2 = _document$featuredIma.files) === null || _document$featuredIma2 === void 0 ? void 0 : (_document$featuredIma3 = _document$featuredIma2[0]) === null || _document$featuredIma3 === void 0 ? void 0 : _document$featuredIma3.url;
|
|
2519
|
-
|
|
2520
2422
|
if (img) {
|
|
2521
2423
|
return `${img}?w=567&q=72`;
|
|
2522
2424
|
}
|
|
2523
|
-
|
|
2524
2425
|
return undefined;
|
|
2525
2426
|
};
|
|
2526
|
-
|
|
2527
2427
|
const Grid = ({
|
|
2528
2428
|
documents,
|
|
2529
2429
|
placeholderImage,
|
|
@@ -2534,7 +2434,6 @@ const Grid = ({
|
|
|
2534
2434
|
if (!documents) {
|
|
2535
2435
|
return null;
|
|
2536
2436
|
}
|
|
2537
|
-
|
|
2538
2437
|
return React__default.createElement(Wrapper$7, null, React__default.createElement(List$4, null, documents.map(document => {
|
|
2539
2438
|
/*
|
|
2540
2439
|
const _path = pathRoute?.replace(/^\/|\/$/g, '');
|
|
@@ -2544,7 +2443,6 @@ const Grid = ({
|
|
|
2544
2443
|
? `${prefix}${document._id}`
|
|
2545
2444
|
: `${window.location.pathname}${prefix}${document._id}`;
|
|
2546
2445
|
*/
|
|
2547
|
-
|
|
2548
2446
|
/*
|
|
2549
2447
|
const _pathRoute = pathRoute
|
|
2550
2448
|
? pathRoute.startsWith('/')
|
|
@@ -2554,7 +2452,6 @@ const Grid = ({
|
|
|
2554
2452
|
console.log(_pathRoute);
|
|
2555
2453
|
*/
|
|
2556
2454
|
const _pathRoute = pathRoute ? `${pathRoute}/${document._id}` : undefined;
|
|
2557
|
-
|
|
2558
2455
|
return React__default.createElement(Item$4, {
|
|
2559
2456
|
key: document._id
|
|
2560
2457
|
}, React__default.createElement(ProductCard, {
|
|
@@ -2780,7 +2677,6 @@ const useOutsideClick = (ref, callback) => {
|
|
|
2780
2677
|
callback();
|
|
2781
2678
|
}
|
|
2782
2679
|
};
|
|
2783
|
-
|
|
2784
2680
|
React.useEffect(() => {
|
|
2785
2681
|
document.addEventListener('click', handleClick);
|
|
2786
2682
|
return () => {
|
|
@@ -2797,11 +2693,9 @@ const SearchBar = ({
|
|
|
2797
2693
|
const ref = React.useRef(null);
|
|
2798
2694
|
const onChange = React.useCallback(e => setValue(e.currentTarget.value), []);
|
|
2799
2695
|
useOutsideClick(ref, () => setValue(''));
|
|
2800
|
-
|
|
2801
2696
|
const _onSearch = React.useCallback(() => {
|
|
2802
2697
|
onSearch(value);
|
|
2803
2698
|
}, [value]);
|
|
2804
|
-
|
|
2805
2699
|
const onKeyDown = React.useCallback(e => {
|
|
2806
2700
|
if (e.keyCode === 13) {
|
|
2807
2701
|
_onSearch();
|
|
@@ -2827,17 +2721,14 @@ const SearchFilter = () => {
|
|
|
2827
2721
|
} = useSearch();
|
|
2828
2722
|
const onSearch = React.useCallback(value => {
|
|
2829
2723
|
const nextQuery = new URLSearchParams(queryFilter.searchParams);
|
|
2830
|
-
|
|
2831
2724
|
if (value === nextQuery.get('query')) {
|
|
2832
2725
|
return;
|
|
2833
2726
|
}
|
|
2834
|
-
|
|
2835
2727
|
if (value) {
|
|
2836
2728
|
nextQuery.set('query', value);
|
|
2837
2729
|
} else {
|
|
2838
2730
|
nextQuery.delete('qquery');
|
|
2839
2731
|
}
|
|
2840
|
-
|
|
2841
2732
|
onFilterUpdate(nextQuery.toString());
|
|
2842
2733
|
setValue('');
|
|
2843
2734
|
}, [queryFilter]);
|
|
@@ -2850,7 +2741,6 @@ const SearchFilter = () => {
|
|
|
2850
2741
|
|
|
2851
2742
|
const getSnackbarBg = severity => {
|
|
2852
2743
|
let bg = theme.color.accent;
|
|
2853
|
-
|
|
2854
2744
|
if (severity === 'error') {
|
|
2855
2745
|
bg = theme.color.ui.negativeLight;
|
|
2856
2746
|
} else if (severity === 'warning') {
|
|
@@ -2860,10 +2750,8 @@ const getSnackbarBg = severity => {
|
|
|
2860
2750
|
} else if (severity === 'success') {
|
|
2861
2751
|
bg = theme.color.ui.positiveLight;
|
|
2862
2752
|
}
|
|
2863
|
-
|
|
2864
2753
|
return bg;
|
|
2865
2754
|
};
|
|
2866
|
-
|
|
2867
2755
|
const Wrapper$b = styled__default.div.attrs(() => ({
|
|
2868
2756
|
role: 'alert'
|
|
2869
2757
|
}))`
|
|
@@ -2911,7 +2799,6 @@ const Snackbar = ({
|
|
|
2911
2799
|
let iconSelector = React__default.createElement(IconInfo, {
|
|
2912
2800
|
block: true
|
|
2913
2801
|
});
|
|
2914
|
-
|
|
2915
2802
|
if (severity === 'error') {
|
|
2916
2803
|
iconSelector = React__default.createElement(IconExclamationCircle, {
|
|
2917
2804
|
block: true
|
|
@@ -2925,14 +2812,12 @@ const Snackbar = ({
|
|
|
2925
2812
|
block: true
|
|
2926
2813
|
});
|
|
2927
2814
|
}
|
|
2928
|
-
|
|
2929
2815
|
return React__default.createElement(Wrapper$b, {
|
|
2930
2816
|
severity: severity
|
|
2931
2817
|
}, icon && React__default.createElement(Icon$3, null, iconSelector), React__default.createElement(Content$1, null, heading && React__default.createElement(Heading$3, null, heading), React__default.createElement(Message, null, children)));
|
|
2932
2818
|
};
|
|
2933
2819
|
|
|
2934
2820
|
class PubSub {}
|
|
2935
|
-
|
|
2936
2821
|
PubSub.events = {
|
|
2937
2822
|
HashRouteChange: [],
|
|
2938
2823
|
ItemClicked: [],
|
|
@@ -2952,9 +2837,7 @@ PubSub.actions = {
|
|
|
2952
2837
|
onFilterUpdate: [],
|
|
2953
2838
|
All: []
|
|
2954
2839
|
};
|
|
2955
|
-
|
|
2956
2840
|
PubSub.subscribeAction = event => PubSub.actions[event.actionName].push(event);
|
|
2957
|
-
|
|
2958
2841
|
PubSub.unsubscribeAction = event => {
|
|
2959
2842
|
if (PubSub.actions[event.actionName]) {
|
|
2960
2843
|
for (let i = 0; i < PubSub.actions[event.actionName].length; i++) {
|
|
@@ -2965,12 +2848,10 @@ PubSub.unsubscribeAction = event => {
|
|
|
2965
2848
|
}
|
|
2966
2849
|
}
|
|
2967
2850
|
};
|
|
2968
|
-
|
|
2969
2851
|
PubSub.publishAction = (eventName, ...args) => {
|
|
2970
2852
|
if (PubSub.actions.All) {
|
|
2971
2853
|
PubSub.events.All.forEach(event => event.callback(eventName, args));
|
|
2972
2854
|
}
|
|
2973
|
-
|
|
2974
2855
|
if (PubSub.actions[eventName]) {
|
|
2975
2856
|
PubSub.actions[eventName].forEach(event => {
|
|
2976
2857
|
switch (eventName) {
|
|
@@ -2981,9 +2862,7 @@ PubSub.publishAction = (eventName, ...args) => {
|
|
|
2981
2862
|
});
|
|
2982
2863
|
}
|
|
2983
2864
|
};
|
|
2984
|
-
|
|
2985
2865
|
PubSub.subscribe = event => PubSub.events[event.eventName].push(event);
|
|
2986
|
-
|
|
2987
2866
|
PubSub.unsubscribe = event => {
|
|
2988
2867
|
if (PubSub.events[event.eventName]) {
|
|
2989
2868
|
for (let i = 0; i < PubSub.events[event.eventName].length; i++) {
|
|
@@ -2994,27 +2873,22 @@ PubSub.unsubscribe = event => {
|
|
|
2994
2873
|
}
|
|
2995
2874
|
}
|
|
2996
2875
|
};
|
|
2997
|
-
|
|
2998
2876
|
PubSub.publish = (eventName, ...args) => {
|
|
2999
2877
|
if (PubSub.events.All) {
|
|
3000
2878
|
PubSub.events.All.forEach(event => event.callback(eventName, args));
|
|
3001
2879
|
}
|
|
3002
|
-
|
|
3003
2880
|
if (PubSub.events[eventName]) {
|
|
3004
2881
|
PubSub.events[eventName].forEach(event => {
|
|
3005
2882
|
switch (eventName) {
|
|
3006
2883
|
case 'HashRouteChange':
|
|
3007
2884
|
event.callback(args[0]);
|
|
3008
2885
|
break;
|
|
3009
|
-
|
|
3010
2886
|
case 'ItemClicked':
|
|
3011
2887
|
event.callback(args[0]);
|
|
3012
2888
|
break;
|
|
3013
|
-
|
|
3014
2889
|
case 'EcomOnUserEvent':
|
|
3015
2890
|
event.callback(args[0], args[1]);
|
|
3016
2891
|
break;
|
|
3017
|
-
|
|
3018
2892
|
case 'EcomOnInit':
|
|
3019
2893
|
case 'EcomOnExit':
|
|
3020
2894
|
case 'ImagesClick':
|
|
@@ -3053,12 +2927,10 @@ const WaykeSearch = ({
|
|
|
3053
2927
|
if (modifyDocumentTitleSearch) {
|
|
3054
2928
|
document.title = modifyDocumentTitleSearch;
|
|
3055
2929
|
}
|
|
3056
|
-
|
|
3057
2930
|
onInitialize(typeof initialQueryParams === 'string' ? new URLSearchParams(initialQueryParams) : initialQueryParams);
|
|
3058
2931
|
}, []);
|
|
3059
2932
|
const onItemClicked = React.useCallback(id => {
|
|
3060
2933
|
PubSub.publish('ItemClicked', id);
|
|
3061
|
-
|
|
3062
2934
|
if (onClickSearchItem) {
|
|
3063
2935
|
onClickSearchItem(id);
|
|
3064
2936
|
}
|
|
@@ -3151,11 +3023,9 @@ const LogoBox = ({
|
|
|
3151
3023
|
wide
|
|
3152
3024
|
}) => {
|
|
3153
3025
|
let logoRetina = logo;
|
|
3154
|
-
|
|
3155
3026
|
if (logo2x) {
|
|
3156
3027
|
logoRetina = `${logo2x} 2x`;
|
|
3157
3028
|
}
|
|
3158
|
-
|
|
3159
3029
|
return React.createElement(Logo, {
|
|
3160
3030
|
src: logo,
|
|
3161
3031
|
srcSet: logoRetina,
|
|
@@ -3339,20 +3209,16 @@ const ExtendContent = ({
|
|
|
3339
3209
|
const [extend, setExtend] = React.useState(false);
|
|
3340
3210
|
const onExtend = React.useCallback(() => {
|
|
3341
3211
|
setExtend(true);
|
|
3342
|
-
|
|
3343
3212
|
if (onClick) {
|
|
3344
3213
|
onClick();
|
|
3345
3214
|
}
|
|
3346
3215
|
}, []);
|
|
3347
|
-
|
|
3348
3216
|
const onRef = ref => {
|
|
3349
3217
|
const refHeight = (ref === null || ref === void 0 ? void 0 : ref.clientHeight) || 0;
|
|
3350
|
-
|
|
3351
3218
|
if (refHeight < 207) {
|
|
3352
3219
|
setExtend(true);
|
|
3353
3220
|
}
|
|
3354
3221
|
};
|
|
3355
|
-
|
|
3356
3222
|
return React__default.createElement(Wrapper$f, {
|
|
3357
3223
|
ref: onRef
|
|
3358
3224
|
}, React__default.createElement(Extend, {
|
|
@@ -3364,7 +3230,6 @@ const ExtendContent = ({
|
|
|
3364
3230
|
};
|
|
3365
3231
|
|
|
3366
3232
|
const quickNavWidth = 83; // 75px + 8px
|
|
3367
|
-
|
|
3368
3233
|
const Wrapper$g = styled__default.div`
|
|
3369
3234
|
${props => props.theme.breakpoint.LtMd} {
|
|
3370
3235
|
${Wrapper} & {
|
|
@@ -3509,8 +3374,8 @@ const ImageFull = styled__default.img`
|
|
|
3509
3374
|
width: 100%;
|
|
3510
3375
|
height: 100%;
|
|
3511
3376
|
object-fit: cover;
|
|
3512
|
-
`;
|
|
3513
|
-
|
|
3377
|
+
`;
|
|
3378
|
+
// Arrow Nav
|
|
3514
3379
|
const Arrow = styled__default(ButtonReset)`
|
|
3515
3380
|
position: absolute;
|
|
3516
3381
|
top: 50%;
|
|
@@ -3562,8 +3427,8 @@ const ArrowLeft = styled__default(Arrow)`
|
|
|
3562
3427
|
`;
|
|
3563
3428
|
const ArrowRight = styled__default(Arrow)`
|
|
3564
3429
|
right: ${size(2)};
|
|
3565
|
-
`;
|
|
3566
|
-
|
|
3430
|
+
`;
|
|
3431
|
+
// Quick Nav
|
|
3567
3432
|
const QuickNav = styled__default.ul`
|
|
3568
3433
|
position: relative;
|
|
3569
3434
|
max-height: 100%;
|
|
@@ -3637,16 +3502,16 @@ const QuickNavImg = styled__default.img`
|
|
|
3637
3502
|
width: 100%;
|
|
3638
3503
|
height: 100%;
|
|
3639
3504
|
object-fit: cover;
|
|
3640
|
-
`;
|
|
3641
|
-
|
|
3505
|
+
`;
|
|
3506
|
+
// Media Button
|
|
3642
3507
|
const MediaButtonWrapper = styled__default.div`
|
|
3643
3508
|
position: absolute;
|
|
3644
3509
|
bottom: ${size(2)};
|
|
3645
3510
|
left: 50%;
|
|
3646
3511
|
transform: translateX(-50%);
|
|
3647
3512
|
z-index: 1;
|
|
3648
|
-
`;
|
|
3649
|
-
|
|
3513
|
+
`;
|
|
3514
|
+
// Sphere Close Button
|
|
3650
3515
|
const EnableNavigationButton = styled__default.div`
|
|
3651
3516
|
position: absolute;
|
|
3652
3517
|
bottom: ${size(2)};
|
|
@@ -3757,11 +3622,9 @@ const getYouTubeId = url => {
|
|
|
3757
3622
|
const youtubeBase = 'https://img.youtube.com/vi/';
|
|
3758
3623
|
const getYoutubeThumbnail = url => {
|
|
3759
3624
|
const id = getYouTubeId(url);
|
|
3760
|
-
|
|
3761
3625
|
if (!id) {
|
|
3762
3626
|
return undefined;
|
|
3763
3627
|
}
|
|
3764
|
-
|
|
3765
3628
|
return {
|
|
3766
3629
|
maxresdefault: `${youtubeBase}${id}/maxresdefault.jpg`,
|
|
3767
3630
|
hqdefault: `${youtubeBase}${id}/hqdefault.jpg`,
|
|
@@ -3843,13 +3706,9 @@ const CustomPlayer = ({
|
|
|
3843
3706
|
};
|
|
3844
3707
|
|
|
3845
3708
|
const ytNames = ['youtube.com', 'youtu.be'];
|
|
3846
|
-
|
|
3847
3709
|
const isYouTubeVideo = url => ytNames.some(host => url.indexOf(host) >= 0);
|
|
3848
|
-
|
|
3849
3710
|
const vNames = ['vimeo.com'];
|
|
3850
|
-
|
|
3851
3711
|
const isVimeoVideo = url => vNames.some(host => url.indexOf(host) >= 0);
|
|
3852
|
-
|
|
3853
3712
|
const VideoPlayer = ({
|
|
3854
3713
|
url,
|
|
3855
3714
|
autoplay = false,
|
|
@@ -4150,7 +4009,6 @@ const style = {
|
|
|
4150
4009
|
paddingBottom: '66.666%',
|
|
4151
4010
|
touchAction: 'manipulation'
|
|
4152
4011
|
};
|
|
4153
|
-
|
|
4154
4012
|
const SphereViewer = ({
|
|
4155
4013
|
id,
|
|
4156
4014
|
src,
|
|
@@ -4167,12 +4025,10 @@ const SphereViewer = ({
|
|
|
4167
4025
|
}
|
|
4168
4026
|
}, 100);
|
|
4169
4027
|
}, []);
|
|
4170
|
-
|
|
4171
4028
|
const c = _objectSpread2(_objectSpread2({}, config), {}, {
|
|
4172
4029
|
preview,
|
|
4173
4030
|
autoLoad
|
|
4174
4031
|
});
|
|
4175
|
-
|
|
4176
4032
|
return React__default.createElement(Wrapper$j, null, React__default.createElement(React__default.Suspense, {
|
|
4177
4033
|
fallback: React__default.createElement(Loader, null)
|
|
4178
4034
|
}, React__default.createElement(ReactPannellum, {
|
|
@@ -4202,14 +4058,11 @@ const MediaButton = ({
|
|
|
4202
4058
|
|
|
4203
4059
|
const calculateCurrentFrame = (startFrame, delta, length) => {
|
|
4204
4060
|
const frame = (startFrame + delta) % length;
|
|
4205
|
-
|
|
4206
4061
|
if (frame < 0) {
|
|
4207
4062
|
return frame + length;
|
|
4208
4063
|
}
|
|
4209
|
-
|
|
4210
4064
|
return frame;
|
|
4211
4065
|
};
|
|
4212
|
-
|
|
4213
4066
|
const Rotation = ({
|
|
4214
4067
|
children
|
|
4215
4068
|
}) => {
|
|
@@ -4228,15 +4081,12 @@ const Rotation = ({
|
|
|
4228
4081
|
window.document.body.removeEventListener('mouseup', mouseUp);
|
|
4229
4082
|
};
|
|
4230
4083
|
}, []);
|
|
4231
|
-
|
|
4232
4084
|
const touchMove = event => {
|
|
4233
4085
|
const notTouched = typeof pointerPosition.current !== 'number';
|
|
4234
4086
|
event.preventDefault();
|
|
4235
|
-
|
|
4236
4087
|
if (notTouched) {
|
|
4237
4088
|
return;
|
|
4238
4089
|
}
|
|
4239
|
-
|
|
4240
4090
|
const childCount = React.Children.count(children);
|
|
4241
4091
|
const {
|
|
4242
4092
|
offsetWidth
|
|
@@ -4247,7 +4097,6 @@ const Rotation = ({
|
|
|
4247
4097
|
const delta = Math.floor(offset / max * childCount);
|
|
4248
4098
|
setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));
|
|
4249
4099
|
};
|
|
4250
|
-
|
|
4251
4100
|
const mouseMove = event => {
|
|
4252
4101
|
const notTouched = typeof pointerPosition.current !== 'number';
|
|
4253
4102
|
event.preventDefault();
|
|
@@ -4258,14 +4107,12 @@ const Rotation = ({
|
|
|
4258
4107
|
const delta = Math.floor(offset / max.current * childCount);
|
|
4259
4108
|
setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));
|
|
4260
4109
|
};
|
|
4261
|
-
|
|
4262
4110
|
const mouseUp = () => {
|
|
4263
4111
|
window.document.body.removeEventListener('mousemove', mouseMove);
|
|
4264
4112
|
window.document.body.removeEventListener('mouseup', mouseUp);
|
|
4265
4113
|
pointerPosition.current = undefined;
|
|
4266
4114
|
startFrame.current = 0;
|
|
4267
4115
|
};
|
|
4268
|
-
|
|
4269
4116
|
const touchStart = event => {
|
|
4270
4117
|
event.preventDefault();
|
|
4271
4118
|
pointerPosition.current = calculatePointerPosition(event);
|
|
@@ -4277,25 +4124,21 @@ const Rotation = ({
|
|
|
4277
4124
|
window.document.body.addEventListener('mousemove', mouseMove);
|
|
4278
4125
|
window.document.body.addEventListener('mouseup', mouseUp);
|
|
4279
4126
|
};
|
|
4280
|
-
|
|
4281
4127
|
const touchEnd = event => {
|
|
4282
4128
|
event.preventDefault();
|
|
4283
4129
|
pointerPosition.current = undefined;
|
|
4284
4130
|
startFrame.current = 0;
|
|
4285
4131
|
};
|
|
4286
|
-
|
|
4287
4132
|
const onMouseEnter = () => {
|
|
4288
4133
|
if (state.outsideMouseMove) setState(_objectSpread2(_objectSpread2({}, state), {}, {
|
|
4289
4134
|
outsideMouseMove: false
|
|
4290
4135
|
}));
|
|
4291
4136
|
};
|
|
4292
|
-
|
|
4293
4137
|
const onMouseLeave = () => {
|
|
4294
4138
|
if (!state.outsideMouseMove) setState(_objectSpread2(_objectSpread2({}, state), {}, {
|
|
4295
4139
|
outsideMouseMove: true
|
|
4296
4140
|
}));
|
|
4297
4141
|
};
|
|
4298
|
-
|
|
4299
4142
|
const setCurrentFrame = current => {
|
|
4300
4143
|
if (current !== state.current) {
|
|
4301
4144
|
setState(_objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -4303,7 +4146,6 @@ const Rotation = ({
|
|
|
4303
4146
|
}));
|
|
4304
4147
|
}
|
|
4305
4148
|
};
|
|
4306
|
-
|
|
4307
4149
|
const calculatePointerPosition = event => {
|
|
4308
4150
|
const {
|
|
4309
4151
|
clientX
|
|
@@ -4313,7 +4155,6 @@ const Rotation = ({
|
|
|
4313
4155
|
} = event.currentTarget;
|
|
4314
4156
|
return clientX - offsetLeft;
|
|
4315
4157
|
};
|
|
4316
|
-
|
|
4317
4158
|
return React__default.createElement("div", {
|
|
4318
4159
|
onTouchStart: touchStart,
|
|
4319
4160
|
onTouchMove: touchMove,
|
|
@@ -4335,7 +4176,6 @@ const ThreeSixtyLightbox = ({
|
|
|
4335
4176
|
}) => {
|
|
4336
4177
|
const [started, setStarted] = React.useState(false);
|
|
4337
4178
|
const onStart = React.useCallback(() => setStarted(true), []);
|
|
4338
|
-
|
|
4339
4179
|
if (!started) {
|
|
4340
4180
|
return React__default.createElement(Item$8, null, React__default.createElement(Img$1, {
|
|
4341
4181
|
src: urls[0],
|
|
@@ -4345,7 +4185,6 @@ const ThreeSixtyLightbox = ({
|
|
|
4345
4185
|
onClick: onStart
|
|
4346
4186
|
}));
|
|
4347
4187
|
}
|
|
4348
|
-
|
|
4349
4188
|
return React__default.createElement(Rotation, null, urls.map((image, i) => React__default.createElement(Img$1, {
|
|
4350
4189
|
key: image,
|
|
4351
4190
|
src: image,
|
|
@@ -4365,13 +4204,11 @@ const Lightbox = ({
|
|
|
4365
4204
|
}, 300);
|
|
4366
4205
|
}
|
|
4367
4206
|
};
|
|
4368
|
-
|
|
4369
4207
|
const onKeyDown = e => {
|
|
4370
4208
|
if (e.keyCode === 27) {
|
|
4371
4209
|
onClose();
|
|
4372
4210
|
}
|
|
4373
4211
|
};
|
|
4374
|
-
|
|
4375
4212
|
return React__default.createElement(Wrapper$h, {
|
|
4376
4213
|
ref: ref => ref === null || ref === void 0 ? void 0 : ref.focus(),
|
|
4377
4214
|
onKeyDown: onKeyDown,
|
|
@@ -4401,9 +4238,7 @@ const Lightbox = ({
|
|
|
4401
4238
|
};
|
|
4402
4239
|
|
|
4403
4240
|
const cache = {};
|
|
4404
|
-
|
|
4405
4241
|
const getCachedResult = key => (cache === null || cache === void 0 ? void 0 : cache[key]) || undefined;
|
|
4406
|
-
|
|
4407
4242
|
const setCachedResult = (key, value) => {
|
|
4408
4243
|
cache[key] = value;
|
|
4409
4244
|
};
|
|
@@ -4412,22 +4247,16 @@ const setCachedResult = (key, value) => {
|
|
|
4412
4247
|
* Usefull if multiple request is fetching from same endpoint, while
|
|
4413
4248
|
* the first request has not been finished (so no cache exist yet).
|
|
4414
4249
|
*/
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
4250
|
let pendingPromise = {};
|
|
4418
|
-
|
|
4419
4251
|
const isPendingPromise = url => !!pendingPromise[url];
|
|
4420
|
-
|
|
4421
4252
|
const setPendingPromise = (url, promise) => {
|
|
4422
4253
|
pendingPromise = _objectSpread2(_objectSpread2({}, pendingPromise), {}, {
|
|
4423
4254
|
[url]: promise
|
|
4424
4255
|
});
|
|
4425
4256
|
};
|
|
4426
|
-
|
|
4427
4257
|
const clearPendingPromise = url => {
|
|
4428
4258
|
delete pendingPromise[url];
|
|
4429
4259
|
};
|
|
4430
|
-
|
|
4431
4260
|
const useFetch = (path, options, skip, promiseCache) => {
|
|
4432
4261
|
const [data, setData] = React.useState();
|
|
4433
4262
|
const [loading, setLoading] = React.useState(false);
|
|
@@ -4436,24 +4265,18 @@ const useFetch = (path, options, skip, promiseCache) => {
|
|
|
4436
4265
|
const key = path.toString();
|
|
4437
4266
|
const cached = getCachedResult(key);
|
|
4438
4267
|
setError(false);
|
|
4439
|
-
|
|
4440
4268
|
if (cached) {
|
|
4441
4269
|
setData(cached);
|
|
4442
4270
|
return;
|
|
4443
4271
|
}
|
|
4444
|
-
|
|
4445
4272
|
setLoading(true);
|
|
4446
|
-
|
|
4447
4273
|
try {
|
|
4448
4274
|
const reusePromise = promiseCache && isPendingPromise(key);
|
|
4449
4275
|
const request = reusePromise ? pendingPromise[key] : fetch(path, options);
|
|
4450
|
-
|
|
4451
4276
|
if (promiseCache) {
|
|
4452
4277
|
setPendingPromise(key, request);
|
|
4453
4278
|
}
|
|
4454
|
-
|
|
4455
4279
|
const result = await request;
|
|
4456
|
-
|
|
4457
4280
|
if (result.ok) {
|
|
4458
4281
|
const json = await result.clone().json();
|
|
4459
4282
|
setCachedResult(key, json);
|
|
@@ -4465,7 +4288,6 @@ const useFetch = (path, options, skip, promiseCache) => {
|
|
|
4465
4288
|
setLoading(false);
|
|
4466
4289
|
clearPendingPromise(key);
|
|
4467
4290
|
}
|
|
4468
|
-
|
|
4469
4291
|
return;
|
|
4470
4292
|
}, [path, options]);
|
|
4471
4293
|
React.useEffect(() => {
|
|
@@ -4505,7 +4327,6 @@ const useThumbnail = (url, small) => {
|
|
|
4505
4327
|
React.useEffect(() => {
|
|
4506
4328
|
if (url) {
|
|
4507
4329
|
const youtubeThumbnail = getYoutubeThumbnail(url);
|
|
4508
|
-
|
|
4509
4330
|
if (youtubeThumbnail) {
|
|
4510
4331
|
if (small) {
|
|
4511
4332
|
setThumbnail([youtubeThumbnail.mqdefault]);
|
|
@@ -4656,21 +4477,17 @@ const GalleryEmbed = ({
|
|
|
4656
4477
|
}) => {
|
|
4657
4478
|
const [modal, setModal] = React.useState();
|
|
4658
4479
|
const thumbnail = useThumbnail(src);
|
|
4659
|
-
|
|
4660
4480
|
const onClick = e => {
|
|
4661
4481
|
e.stopPropagation();
|
|
4662
4482
|
setModal(src);
|
|
4663
4483
|
};
|
|
4664
|
-
|
|
4665
4484
|
const onCloseModal = e => {
|
|
4666
4485
|
e.stopPropagation();
|
|
4667
4486
|
setModal(undefined);
|
|
4668
4487
|
};
|
|
4669
|
-
|
|
4670
4488
|
const onError = React.useCallback(e => onImageError(e, thumbnail), [thumbnail]);
|
|
4671
4489
|
const onLoad = React.useCallback(e => onImageLoad(e, thumbnail), [thumbnail]);
|
|
4672
4490
|
const customVideo = src.toLowerCase().endsWith('.mp4');
|
|
4673
|
-
|
|
4674
4491
|
if (thumbnail !== null && thumbnail !== void 0 && thumbnail.length && !customVideo) {
|
|
4675
4492
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(ImageFull, {
|
|
4676
4493
|
onLoad: onLoad,
|
|
@@ -4687,7 +4504,6 @@ const GalleryEmbed = ({
|
|
|
4687
4504
|
url: modal
|
|
4688
4505
|
})));
|
|
4689
4506
|
}
|
|
4690
|
-
|
|
4691
4507
|
if (customVideo) return React__default.createElement(React__default.Fragment, null, React__default.createElement(CustomPlayer, {
|
|
4692
4508
|
ratio: "66.66%",
|
|
4693
4509
|
isPreview: true,
|
|
@@ -4732,7 +4548,6 @@ const onMediaClick = (e, func) => {
|
|
|
4732
4548
|
e.preventDefault();
|
|
4733
4549
|
func();
|
|
4734
4550
|
};
|
|
4735
|
-
|
|
4736
4551
|
const Sphere = ({
|
|
4737
4552
|
url,
|
|
4738
4553
|
preview,
|
|
@@ -4749,7 +4564,6 @@ const Sphere = ({
|
|
|
4749
4564
|
onClick: e => onMediaClick(e, onDisableNavigation)
|
|
4750
4565
|
}));
|
|
4751
4566
|
}
|
|
4752
|
-
|
|
4753
4567
|
if (navigationDisabled && visible) {
|
|
4754
4568
|
return React__default.createElement(SphereViewer, {
|
|
4755
4569
|
id: url,
|
|
@@ -4759,7 +4573,6 @@ const Sphere = ({
|
|
|
4759
4573
|
onStart: onDisableNavigation
|
|
4760
4574
|
});
|
|
4761
4575
|
}
|
|
4762
|
-
|
|
4763
4576
|
return null;
|
|
4764
4577
|
};
|
|
4765
4578
|
|
|
@@ -4768,7 +4581,6 @@ const onMediaClick$1 = (e, func) => {
|
|
|
4768
4581
|
e.preventDefault();
|
|
4769
4582
|
func();
|
|
4770
4583
|
};
|
|
4771
|
-
|
|
4772
4584
|
const ThreeSixty = ({
|
|
4773
4585
|
urls,
|
|
4774
4586
|
visible,
|
|
@@ -4784,7 +4596,6 @@ const ThreeSixty = ({
|
|
|
4784
4596
|
onClick: e => onMediaClick$1(e, onDisableNavigation)
|
|
4785
4597
|
}));
|
|
4786
4598
|
}
|
|
4787
|
-
|
|
4788
4599
|
if (navigationDisabled && visible) {
|
|
4789
4600
|
return React__default.createElement("div", {
|
|
4790
4601
|
onClick: e => {
|
|
@@ -4797,7 +4608,6 @@ const ThreeSixty = ({
|
|
|
4797
4608
|
alt: `Bild ${i + 1}`
|
|
4798
4609
|
}))));
|
|
4799
4610
|
}
|
|
4800
|
-
|
|
4801
4611
|
return null;
|
|
4802
4612
|
};
|
|
4803
4613
|
|
|
@@ -4809,7 +4619,6 @@ const sliderSettings = {
|
|
|
4809
4619
|
slidesToShow: 1,
|
|
4810
4620
|
slidesToScroll: 1
|
|
4811
4621
|
};
|
|
4812
|
-
|
|
4813
4622
|
const Gallery = ({
|
|
4814
4623
|
media,
|
|
4815
4624
|
placeholderImage
|
|
@@ -4822,9 +4631,7 @@ const Gallery = ({
|
|
|
4822
4631
|
const [navigationDisabled, setNavigationDisabled] = React.useState(false);
|
|
4823
4632
|
const beforeChange = React.useCallback((_, newIndex) => {
|
|
4824
4633
|
var _quickNavRef$current, _quickNavRef$current$;
|
|
4825
|
-
|
|
4826
4634
|
const element = (_quickNavRef$current = quickNavRef.current) === null || _quickNavRef$current === void 0 ? void 0 : (_quickNavRef$current$ = _quickNavRef$current.querySelectorAll('li')) === null || _quickNavRef$current$ === void 0 ? void 0 : _quickNavRef$current$[newIndex];
|
|
4827
|
-
|
|
4828
4635
|
if (element) {
|
|
4829
4636
|
scrollIntoView(element, {
|
|
4830
4637
|
scrollMode: 'if-needed',
|
|
@@ -4832,7 +4639,6 @@ const Gallery = ({
|
|
|
4832
4639
|
inline: 'nearest'
|
|
4833
4640
|
});
|
|
4834
4641
|
}
|
|
4835
|
-
|
|
4836
4642
|
setIndex(newIndex);
|
|
4837
4643
|
}, []);
|
|
4838
4644
|
const onMouseDown = React.useCallback(() => {
|
|
@@ -4847,7 +4653,6 @@ const Gallery = ({
|
|
|
4847
4653
|
}, []);
|
|
4848
4654
|
const onClick = React.useCallback(() => {
|
|
4849
4655
|
PubSub.publish('ImagesClick');
|
|
4850
|
-
|
|
4851
4656
|
if (!isDragging.current && !lightbox && !!(media !== null && media !== void 0 && media.length)) {
|
|
4852
4657
|
setLightbox(true);
|
|
4853
4658
|
}
|
|
@@ -4856,38 +4661,31 @@ const Gallery = ({
|
|
|
4856
4661
|
if (!slider || !slider.current) {
|
|
4857
4662
|
return;
|
|
4858
4663
|
}
|
|
4859
|
-
|
|
4860
4664
|
slider.current.slickNext();
|
|
4861
4665
|
}, [slider]);
|
|
4862
4666
|
const prevImage = React.useCallback(() => {
|
|
4863
4667
|
if (!slider || !slider.current) {
|
|
4864
4668
|
return;
|
|
4865
4669
|
}
|
|
4866
|
-
|
|
4867
4670
|
slider.current.slickPrev();
|
|
4868
4671
|
}, [slider]);
|
|
4869
|
-
|
|
4870
4672
|
const goTo = target => {
|
|
4871
4673
|
if (!slider || !slider.current) {
|
|
4872
4674
|
return;
|
|
4873
4675
|
}
|
|
4874
|
-
|
|
4875
4676
|
if (slider.current) {
|
|
4876
4677
|
setIndex(target);
|
|
4877
4678
|
slider.current.slickGoTo(target);
|
|
4878
4679
|
}
|
|
4879
4680
|
};
|
|
4880
|
-
|
|
4881
4681
|
const onDisableNavigation = () => {
|
|
4882
4682
|
if (!isDragging.current) setNavigationDisabled(true);
|
|
4883
4683
|
};
|
|
4884
|
-
|
|
4885
4684
|
const onEnableNavigation = e => {
|
|
4886
4685
|
e.stopPropagation();
|
|
4887
4686
|
isDragging.current = false;
|
|
4888
4687
|
setNavigationDisabled(false);
|
|
4889
4688
|
};
|
|
4890
|
-
|
|
4891
4689
|
const onToggleLightbox = React.useCallback(() => setLightbox(!lightbox), [lightbox]);
|
|
4892
4690
|
const mediaLength = (media === null || media === void 0 ? void 0 : media.length) || 0;
|
|
4893
4691
|
const placeholder = React.useMemo(() => placeholderImage || DEFAULT_PLACEHOLDER_IMAGE, [placeholderImage]);
|
|
@@ -4903,7 +4701,6 @@ const Gallery = ({
|
|
|
4903
4701
|
beforeChange: beforeChange
|
|
4904
4702
|
}), !!(media !== null && media !== void 0 && media.length) ? media.map((m, i) => {
|
|
4905
4703
|
var _m$files$0$formats$fi;
|
|
4906
|
-
|
|
4907
4704
|
return React__default.createElement(Item$7, {
|
|
4908
4705
|
key: m.files[0].url || i
|
|
4909
4706
|
}, m.type === 'image' && React__default.createElement(Image$1, {
|
|
@@ -4946,7 +4743,6 @@ const Gallery = ({
|
|
|
4946
4743
|
ref: quickNavRef
|
|
4947
4744
|
}, !!(media !== null && media !== void 0 && media.length) ? media.map((m, i) => {
|
|
4948
4745
|
var _m$files$0$formats$fi2;
|
|
4949
|
-
|
|
4950
4746
|
const src = ((_m$files$0$formats$fi2 = m.files[0].formats.filter(notEmpty).find(x => x.format === '225x150')) === null || _m$files$0$formats$fi2 === void 0 ? void 0 : _m$files$0$formats$fi2.url) || m.files[0].url;
|
|
4951
4747
|
return React__default.createElement(QuickNavItem, {
|
|
4952
4748
|
key: src || i,
|
|
@@ -5550,11 +5346,9 @@ const RangeSliderSimple = ({
|
|
|
5550
5346
|
const step = second - first;
|
|
5551
5347
|
const currentMin = formatValues ? numberSeparator(domain[0]) : domain[0];
|
|
5552
5348
|
const currentMax = formatValues ? numberSeparator(domain[1]) : domain[1];
|
|
5553
|
-
|
|
5554
5349
|
if (steps.length < 2) {
|
|
5555
5350
|
return null;
|
|
5556
5351
|
}
|
|
5557
|
-
|
|
5558
5352
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(Slider, null, React__default.createElement(reactCompoundSlider.Slider, {
|
|
5559
5353
|
disabled: loading,
|
|
5560
5354
|
mode: 1,
|
|
@@ -5631,30 +5425,25 @@ const SliderWithLabel = ({
|
|
|
5631
5425
|
|
|
5632
5426
|
const stepGenerator = (step, max, steps = [], current) => {
|
|
5633
5427
|
if (step === 0 && current === undefined) return steps;
|
|
5634
|
-
|
|
5635
5428
|
if (current !== undefined && current >= max && step !== 0) {
|
|
5636
5429
|
return steps;
|
|
5637
5430
|
}
|
|
5638
|
-
|
|
5639
5431
|
const nextCurrent = current ? step + current : step;
|
|
5640
5432
|
steps.push(nextCurrent);
|
|
5641
5433
|
return stepGenerator(step, max, steps, nextCurrent);
|
|
5642
5434
|
};
|
|
5643
|
-
|
|
5644
5435
|
const LoanModal = ({
|
|
5645
5436
|
id,
|
|
5646
5437
|
financialOption,
|
|
5647
5438
|
onClose
|
|
5648
5439
|
}) => {
|
|
5649
5440
|
var _financialOption$dura, _financialOption$down, _financialOption$resi, _loan$downPayment, _loan$downPayment2, _loan$downPayment3, _loan$downPayment4, _loan$duration, _loan$duration2, _loan$duration3, _loan$duration4, _loan$residual, _loan$residual2, _loan$residual3, _loan$residual4;
|
|
5650
|
-
|
|
5651
5441
|
const [tmp, setTmp] = React.useState();
|
|
5652
5442
|
const [extend, setExtend] = React__default.useState(false);
|
|
5653
5443
|
const onToggleExtend = React__default.useCallback(() => {
|
|
5654
5444
|
if (!extend) {
|
|
5655
5445
|
PubSub.publish('FinanceInterest');
|
|
5656
5446
|
}
|
|
5657
|
-
|
|
5658
5447
|
setExtend(!extend);
|
|
5659
5448
|
}, [extend]);
|
|
5660
5449
|
const [variables, setVariables] = React.useState({
|
|
@@ -5674,7 +5463,6 @@ const LoanModal = ({
|
|
|
5674
5463
|
React.useEffect(() => {
|
|
5675
5464
|
if (data) {
|
|
5676
5465
|
var _data$loan, _data$loan$duration, _data$loan2, _data$loan2$downPayme, _data$loan3, _data$loan3$residual;
|
|
5677
|
-
|
|
5678
5466
|
setTmp(data);
|
|
5679
5467
|
setVariables({
|
|
5680
5468
|
duration: (data === null || data === void 0 ? void 0 : (_data$loan = data.loan) === null || _data$loan === void 0 ? void 0 : (_data$loan$duration = _data$loan.duration) === null || _data$loan$duration === void 0 ? void 0 : _data$loan$duration.current) || 0,
|
|
@@ -5781,7 +5569,6 @@ const Loan = ({
|
|
|
5781
5569
|
financialOption
|
|
5782
5570
|
}) => {
|
|
5783
5571
|
var _financialOption$dura, _financialOption$down, _financialOption$resi, _data$loan, _data$loan2, _data$loan2$duration, _data$loan3;
|
|
5784
|
-
|
|
5785
5572
|
const [modal, setModal] = React.useState(false);
|
|
5786
5573
|
const toggleModal = React.useCallback(() => setModal(!modal), [modal]);
|
|
5787
5574
|
const {
|
|
@@ -5790,15 +5577,14 @@ const Loan = ({
|
|
|
5790
5577
|
const interest = data === null || data === void 0 ? void 0 : (_data$loan = data.loan) === null || _data$loan === void 0 ? void 0 : _data$loan.interest;
|
|
5791
5578
|
const duration = data === null || data === void 0 ? void 0 : (_data$loan2 = data.loan) === null || _data$loan2 === void 0 ? void 0 : (_data$loan2$duration = _data$loan2.duration) === null || _data$loan2$duration === void 0 ? void 0 : _data$loan2$duration.current;
|
|
5792
5579
|
const monthlyCost = data === null || data === void 0 ? void 0 : (_data$loan3 = data.loan) === null || _data$loan3 === void 0 ? void 0 : _data$loan3.monthlyCost;
|
|
5793
|
-
const logo = (financialOption === null || financialOption === void 0 ? void 0 : financialOption.logotype) || 'https://placehold.it/67x10';
|
|
5794
|
-
|
|
5580
|
+
const logo = (financialOption === null || financialOption === void 0 ? void 0 : financialOption.logotype) || 'https://placehold.it/67x10';
|
|
5581
|
+
// Skeleton?
|
|
5795
5582
|
if (financialOption.loanAmount === undefined || financialOption.loanAmount === null || interest === undefined || duration === undefined || monthlyCost === undefined || interest === null || duration === null || monthlyCost === null) {
|
|
5796
5583
|
return React__default.createElement(OptionBox, {
|
|
5797
5584
|
logo: logo,
|
|
5798
5585
|
logoAlt: "Logotyp"
|
|
5799
5586
|
}, React__default.createElement(OptionBoxHeading, null, "Laddar..."), React__default.createElement(OptionBoxContent, null, React__default.createElement("p", null, "Laddar...")));
|
|
5800
5587
|
}
|
|
5801
|
-
|
|
5802
5588
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(LoanModal, {
|
|
5803
5589
|
id: id,
|
|
5804
5590
|
financialOption: financialOption,
|
|
@@ -6257,7 +6043,6 @@ const useInsuranceCalculation = (id, branchId, personalNumber, drivingDistance)
|
|
|
6257
6043
|
const ssnIsValid = s => s ? /^\d{2,4}\d{2}\d{2}\-?\d{4}$/.test(s) : false;
|
|
6258
6044
|
|
|
6259
6045
|
var DrivingDistance;
|
|
6260
|
-
|
|
6261
6046
|
(function (DrivingDistance) {
|
|
6262
6047
|
DrivingDistance["Between0And1000"] = "BETWEEN0AND1000";
|
|
6263
6048
|
DrivingDistance["Between1000And1500"] = "BETWEEN1000AND1500";
|
|
@@ -6265,9 +6050,7 @@ var DrivingDistance;
|
|
|
6265
6050
|
DrivingDistance["Between2000And2500"] = "BETWEEN2000AND2500";
|
|
6266
6051
|
DrivingDistance["Over2500"] = "OVER2500";
|
|
6267
6052
|
})(DrivingDistance || (DrivingDistance = {}));
|
|
6268
|
-
|
|
6269
6053
|
var FinancialOptionInclusion;
|
|
6270
|
-
|
|
6271
6054
|
(function (FinancialOptionInclusion) {
|
|
6272
6055
|
FinancialOptionInclusion["IncludesInsurance"] = "INCLUDES_INSURANCE";
|
|
6273
6056
|
FinancialOptionInclusion["IncludesService"] = "INCLUDES_SERVICE";
|
|
@@ -6383,11 +6166,9 @@ const Insurance = ({
|
|
|
6383
6166
|
}) => {
|
|
6384
6167
|
const [modal, setModal] = React.useState(false);
|
|
6385
6168
|
const toggleModal = React.useCallback(() => setModal(!modal), [modal]);
|
|
6386
|
-
|
|
6387
6169
|
if (!insuranceOptions.length) {
|
|
6388
6170
|
return null;
|
|
6389
6171
|
}
|
|
6390
|
-
|
|
6391
6172
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(InsuranceModal, {
|
|
6392
6173
|
id: id,
|
|
6393
6174
|
branch: branch,
|
|
@@ -6407,7 +6188,6 @@ const InsuranceFreeModal = ({
|
|
|
6407
6188
|
insuranceOptions
|
|
6408
6189
|
}) => {
|
|
6409
6190
|
var _insuranceOptions$ins;
|
|
6410
|
-
|
|
6411
6191
|
return React__default.createElement(Modal, {
|
|
6412
6192
|
title: (_insuranceOptions$ins = insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.insuranceHeader) !== null && _insuranceOptions$ins !== void 0 ? _insuranceOptions$ins : 'Försäkring',
|
|
6413
6193
|
onClose: onClose
|
|
@@ -6431,14 +6211,11 @@ const Insurance$1 = ({
|
|
|
6431
6211
|
insuranceOptions
|
|
6432
6212
|
}) => {
|
|
6433
6213
|
var _insuranceOptions$0$i, _insuranceOptions$;
|
|
6434
|
-
|
|
6435
6214
|
const [modal, setModal] = React.useState(false);
|
|
6436
6215
|
const toggleModal = React.useCallback(() => setModal(!modal), [modal]);
|
|
6437
|
-
|
|
6438
6216
|
if (!insuranceOptions.length) {
|
|
6439
6217
|
return null;
|
|
6440
6218
|
}
|
|
6441
|
-
|
|
6442
6219
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(InsuranceFreeModal, {
|
|
6443
6220
|
onClose: toggleModal,
|
|
6444
6221
|
insuranceOptions: insuranceOptions[0]
|
|
@@ -6463,7 +6240,6 @@ const InsuranceOptions = ({
|
|
|
6463
6240
|
if (!insuranceOptions.length) {
|
|
6464
6241
|
return null;
|
|
6465
6242
|
}
|
|
6466
|
-
|
|
6467
6243
|
if (insuranceOptions.length > 0) {
|
|
6468
6244
|
if (insuranceOptions[0].requiresDistance && insuranceOptions[0].requiresPersonalNumber) return React__default.createElement(Insurance, {
|
|
6469
6245
|
id: id,
|
|
@@ -6474,7 +6250,6 @@ const InsuranceOptions = ({
|
|
|
6474
6250
|
insuranceOptions: insuranceOptions
|
|
6475
6251
|
});
|
|
6476
6252
|
}
|
|
6477
|
-
|
|
6478
6253
|
return null;
|
|
6479
6254
|
};
|
|
6480
6255
|
|
|
@@ -6482,11 +6257,9 @@ const ManufacturerPackageOption = ({
|
|
|
6482
6257
|
packageOption
|
|
6483
6258
|
}) => {
|
|
6484
6259
|
var _packageOption$link;
|
|
6485
|
-
|
|
6486
6260
|
if (!packageOption) {
|
|
6487
6261
|
return null;
|
|
6488
6262
|
}
|
|
6489
|
-
|
|
6490
6263
|
return React__default.createElement(ProductPageMainSection, null, React__default.createElement(Repeat, null, React__default.createElement(H2, {
|
|
6491
6264
|
noMargin: true
|
|
6492
6265
|
}, packageOption.title)), packageOption.description && React__default.createElement(Repeat, null, React__default.createElement(Content$2, {
|
|
@@ -6506,9 +6279,7 @@ const ManufacturerPackageOption = ({
|
|
|
6506
6279
|
};
|
|
6507
6280
|
|
|
6508
6281
|
const initialValue = {};
|
|
6509
|
-
|
|
6510
6282
|
const getInitialValue = title => title && !!initialValue[title];
|
|
6511
|
-
|
|
6512
6283
|
const ToggleItem = ({
|
|
6513
6284
|
title,
|
|
6514
6285
|
value,
|
|
@@ -6517,18 +6288,15 @@ const ToggleItem = ({
|
|
|
6517
6288
|
onClickValue
|
|
6518
6289
|
}) => {
|
|
6519
6290
|
const [visible, setVisible] = React.useState(() => getInitialValue(type));
|
|
6520
|
-
|
|
6521
6291
|
const _onClickValue = React.useCallback(() => {
|
|
6522
6292
|
if (onClickValue) {
|
|
6523
6293
|
onClickValue();
|
|
6524
6294
|
}
|
|
6525
6295
|
}, []);
|
|
6526
|
-
|
|
6527
6296
|
const onClick = React.useCallback(() => {
|
|
6528
6297
|
if (!visible) {
|
|
6529
6298
|
initialValue[type] = true;
|
|
6530
6299
|
setVisible(true);
|
|
6531
|
-
|
|
6532
6300
|
if (onClickVisible) {
|
|
6533
6301
|
onClickVisible();
|
|
6534
6302
|
}
|
|
@@ -6574,17 +6342,14 @@ const ActionList = ({
|
|
|
6574
6342
|
branch
|
|
6575
6343
|
}) => {
|
|
6576
6344
|
var _branch$contact, _branch$contact2;
|
|
6577
|
-
|
|
6578
6345
|
const email = (contact === null || contact === void 0 ? void 0 : contact.email) || (branch === null || branch === void 0 ? void 0 : (_branch$contact = branch.contact) === null || _branch$contact === void 0 ? void 0 : _branch$contact.email);
|
|
6579
6346
|
const phonenumber = (contact === null || contact === void 0 ? void 0 : contact.phonenumber) || (branch === null || branch === void 0 ? void 0 : (_branch$contact2 = branch.contact) === null || _branch$contact2 === void 0 ? void 0 : _branch$contact2.phonenumber);
|
|
6580
6347
|
const onClickMailVisible = React.useCallback(() => PubSub.publish('MailVisible'), []);
|
|
6581
6348
|
const onClickPhoneVisible = React.useCallback(() => PubSub.publish('PhonenumberVisible'), []);
|
|
6582
6349
|
const onClickPhoneValue = React.useCallback(() => PubSub.publish('PhonenumberCall'), []);
|
|
6583
|
-
|
|
6584
6350
|
if (!email && !phonenumber) {
|
|
6585
6351
|
return null;
|
|
6586
6352
|
}
|
|
6587
|
-
|
|
6588
6353
|
return React__default.createElement(React__default.Fragment, null, email && React__default.createElement(ToggleItem, {
|
|
6589
6354
|
onClickVisible: onClickMailVisible,
|
|
6590
6355
|
title: "Visa mailadress",
|
|
@@ -6725,7 +6490,6 @@ const CheckMarkListItem = ({
|
|
|
6725
6490
|
}) => React__default.createElement(Item$a, null, React__default.createElement(Icon$5, null, React__default.createElement(IconCheck, {
|
|
6726
6491
|
block: true
|
|
6727
6492
|
})), React__default.createElement(Label$9, null, children));
|
|
6728
|
-
|
|
6729
6493
|
const CheckMarkList = ({
|
|
6730
6494
|
children
|
|
6731
6495
|
}) => React__default.createElement(List$8, null, children);
|
|
@@ -6842,11 +6606,9 @@ const BranchModal = ({
|
|
|
6842
6606
|
}
|
|
6843
6607
|
}, []);
|
|
6844
6608
|
const onChange = React.useCallback(e => setLocalValue(e.currentTarget.value), []);
|
|
6845
|
-
|
|
6846
6609
|
if (!localValue) {
|
|
6847
6610
|
return null;
|
|
6848
6611
|
}
|
|
6849
|
-
|
|
6850
6612
|
return React__default.createElement(Modal, {
|
|
6851
6613
|
title: "Byt anl\u00E4ggning",
|
|
6852
6614
|
onClose: onClose
|
|
@@ -6870,7 +6632,6 @@ const PackageOptionModal = ({
|
|
|
6870
6632
|
onClose
|
|
6871
6633
|
}) => {
|
|
6872
6634
|
var _packageOption$link;
|
|
6873
|
-
|
|
6874
6635
|
return React__default.createElement(Modal, {
|
|
6875
6636
|
title: packageOption.title || '',
|
|
6876
6637
|
onClose: onClose
|
|
@@ -7060,11 +6821,9 @@ const useRelatedSearch = id => {
|
|
|
7060
6821
|
React.useEffect(() => {
|
|
7061
6822
|
const searchParams = new URLSearchParams();
|
|
7062
6823
|
searchParams.set('hits', '3');
|
|
7063
|
-
|
|
7064
6824
|
if (data.moreLikeThisUrl && id) {
|
|
7065
6825
|
searchParams.set('id', id);
|
|
7066
6826
|
}
|
|
7067
|
-
|
|
7068
6827
|
data.fetchRelated(searchParams);
|
|
7069
6828
|
}, [id]);
|
|
7070
6829
|
return data;
|
|
@@ -7076,7 +6835,6 @@ const regexPathGuid = path => {
|
|
|
7076
6835
|
if (!path || path) {
|
|
7077
6836
|
return regexEndGuid;
|
|
7078
6837
|
}
|
|
7079
|
-
|
|
7080
6838
|
const r = new RegExp(`${escapeRegExpString(path)}${regexEndGuid.source}`, 'gi');
|
|
7081
6839
|
return r;
|
|
7082
6840
|
};
|
|
@@ -7094,20 +6852,16 @@ const Related = ({
|
|
|
7094
6852
|
} = useRelatedSearch(id);
|
|
7095
6853
|
const onItemClicked = React.useCallback(id => {
|
|
7096
6854
|
PubSub.publish('ItemClicked', id);
|
|
7097
|
-
|
|
7098
6855
|
if (onClickSearchItem) {
|
|
7099
6856
|
onClickSearchItem(id);
|
|
7100
6857
|
}
|
|
7101
6858
|
}, []);
|
|
7102
|
-
|
|
7103
6859
|
if (!(response !== null && response !== void 0 && response.documentList.documents.length) || (response === null || response === void 0 ? void 0 : response.documentList.documents.length) === 0) {
|
|
7104
6860
|
return null;
|
|
7105
6861
|
}
|
|
7106
|
-
|
|
7107
6862
|
if (loading) {
|
|
7108
6863
|
return React__default.createElement(Loader, null);
|
|
7109
6864
|
}
|
|
7110
|
-
|
|
7111
6865
|
return React__default.createElement(PageSection, {
|
|
7112
6866
|
accent: true,
|
|
7113
6867
|
large: true,
|
|
@@ -7123,7 +6877,6 @@ const Related = ({
|
|
|
7123
6877
|
noMargin: true
|
|
7124
6878
|
}, "Senast inkomna"))), React__default.createElement(Repeat, null, React__default.createElement(OverflowGrid, null, React__default.createElement(OverflowGridList, null, response === null || response === void 0 ? void 0 : response.documentList.documents.map(document => {
|
|
7125
6879
|
var _document$featuredIma, _document$featuredIma2, _document$featuredIma3;
|
|
7126
|
-
|
|
7127
6880
|
const prefix = pathRoute ? `/${pathRoute}` : '/';
|
|
7128
6881
|
const r = regexPathGuid();
|
|
7129
6882
|
const pathRouteUrl = window.location.pathname === '/' ? `${prefix}${document._id}` : r.test(`${pathRoute}${id}`) ? window.location.pathname.replace(r, document._id) : `${window.location.pathname}${prefix}${document._id}`;
|
|
@@ -7158,10 +6911,8 @@ const PackageOptions = ({
|
|
|
7158
6911
|
if (!packageOptions) {
|
|
7159
6912
|
return null;
|
|
7160
6913
|
}
|
|
7161
|
-
|
|
7162
6914
|
return React__default.createElement(React__default.Fragment, null, packageOptions.map((packageOption, index) => {
|
|
7163
6915
|
var _packageOption$link;
|
|
7164
|
-
|
|
7165
6916
|
return React__default.createElement(ProductPageMainSection, {
|
|
7166
6917
|
key: packageOption.title || index
|
|
7167
6918
|
}, React__default.createElement(Repeat, null, React__default.createElement(H2, {
|
|
@@ -7198,16 +6949,13 @@ const TableColumnCell = styled__default.div`
|
|
|
7198
6949
|
|
|
7199
6950
|
const getBg = severity => {
|
|
7200
6951
|
let bg = theme.color.textDark;
|
|
7201
|
-
|
|
7202
6952
|
if (severity === 'positive') {
|
|
7203
6953
|
bg = theme.color.ui.positive;
|
|
7204
6954
|
} else if (severity === 'negative') {
|
|
7205
6955
|
bg = theme.color.ui.negative;
|
|
7206
6956
|
}
|
|
7207
|
-
|
|
7208
6957
|
return bg;
|
|
7209
6958
|
};
|
|
7210
|
-
|
|
7211
6959
|
const Wrapper$v = styled__default.div.attrs(() => ({
|
|
7212
6960
|
className: 'wayke__theme wayke__font--bold'
|
|
7213
6961
|
}))`
|
|
@@ -7228,39 +6976,29 @@ const Badge = ({
|
|
|
7228
6976
|
}, label);
|
|
7229
6977
|
|
|
7230
6978
|
const KeyOrder = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
|
|
7231
|
-
|
|
7232
6979
|
const TranslateWeekDays = d => {
|
|
7233
6980
|
switch (d) {
|
|
7234
6981
|
case 'monday':
|
|
7235
6982
|
return 'Mån';
|
|
7236
|
-
|
|
7237
6983
|
case 'tuesday':
|
|
7238
6984
|
return 'Tis';
|
|
7239
|
-
|
|
7240
6985
|
case 'wednesday':
|
|
7241
6986
|
return 'Ons';
|
|
7242
|
-
|
|
7243
6987
|
case 'thursday':
|
|
7244
6988
|
return 'Tor';
|
|
7245
|
-
|
|
7246
6989
|
case 'friday':
|
|
7247
6990
|
return 'Fre';
|
|
7248
|
-
|
|
7249
6991
|
case 'saturday':
|
|
7250
6992
|
return 'Lör';
|
|
7251
|
-
|
|
7252
6993
|
case 'sunday':
|
|
7253
6994
|
return 'Sön';
|
|
7254
6995
|
}
|
|
7255
6996
|
};
|
|
7256
|
-
|
|
7257
6997
|
const arr = [];
|
|
7258
|
-
|
|
7259
6998
|
const GetOpeningHours = o => KeyOrder.reduce((prev, current) => {
|
|
7260
6999
|
const title = TranslateWeekDays(current);
|
|
7261
7000
|
const item = o[current];
|
|
7262
7001
|
const previous = prev === null || prev === void 0 ? void 0 : prev[prev.length - 1];
|
|
7263
|
-
|
|
7264
7002
|
if (previous && previous.from == (item === null || item === void 0 ? void 0 : item.from) && previous.until === (item === null || item === void 0 ? void 0 : item.until)) {
|
|
7265
7003
|
prev[prev.length - 1].titleTo = title;
|
|
7266
7004
|
} else {
|
|
@@ -7270,10 +7008,8 @@ const GetOpeningHours = o => KeyOrder.reduce((prev, current) => {
|
|
|
7270
7008
|
until: item === null || item === void 0 ? void 0 : item.until
|
|
7271
7009
|
});
|
|
7272
7010
|
}
|
|
7273
|
-
|
|
7274
7011
|
return prev;
|
|
7275
7012
|
}, arr.slice());
|
|
7276
|
-
|
|
7277
7013
|
const GetOpeningHoursToday = o => {
|
|
7278
7014
|
const dayNumber = new Date().getDay();
|
|
7279
7015
|
const day = KeyOrder[dayNumber === 0 ? 6 : dayNumber - 1];
|
|
@@ -7284,12 +7020,10 @@ const GetOpeningHoursToday = o => {
|
|
|
7284
7020
|
until: current === null || current === void 0 ? void 0 : current.until
|
|
7285
7021
|
};
|
|
7286
7022
|
};
|
|
7287
|
-
|
|
7288
7023
|
const valuOfDateString = s => {
|
|
7289
7024
|
const splitted = s.split(':').map(x => parseInt(x, 10));
|
|
7290
7025
|
return new Date().setHours(splitted[0], splitted[1]).valueOf();
|
|
7291
7026
|
};
|
|
7292
|
-
|
|
7293
7027
|
const OpeningHours = ({
|
|
7294
7028
|
openingHours
|
|
7295
7029
|
}) => {
|
|
@@ -7307,11 +7041,9 @@ const OpeningHours = ({
|
|
|
7307
7041
|
}
|
|
7308
7042
|
}, [today]);
|
|
7309
7043
|
const oh = React.useMemo(() => openingHours ? GetOpeningHours(openingHours) : null, [openingHours]);
|
|
7310
|
-
|
|
7311
7044
|
if (!oh) {
|
|
7312
7045
|
return null;
|
|
7313
7046
|
}
|
|
7314
|
-
|
|
7315
7047
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(RepeatSmall, null, React__default.createElement(Badge, {
|
|
7316
7048
|
label: currentlyOpen ? 'Öppet' : 'Stängt',
|
|
7317
7049
|
severity: currentlyOpen ? 'positive' : 'negative'
|
|
@@ -7378,16 +7110,13 @@ const StaticMap = ({
|
|
|
7378
7110
|
setVisible(true);
|
|
7379
7111
|
}
|
|
7380
7112
|
}, []);
|
|
7381
|
-
|
|
7382
7113
|
if (!position) {
|
|
7383
7114
|
return null;
|
|
7384
7115
|
}
|
|
7385
|
-
|
|
7386
7116
|
const {
|
|
7387
7117
|
latitude,
|
|
7388
7118
|
longitude
|
|
7389
7119
|
} = position;
|
|
7390
|
-
|
|
7391
7120
|
if (visible && googleMapsApiKey) {
|
|
7392
7121
|
return React__default.createElement(Wrapper$w, {
|
|
7393
7122
|
href: `http://maps.google.com/maps?q=${latitude},${longitude}`,
|
|
@@ -7399,7 +7128,6 @@ const StaticMap = ({
|
|
|
7399
7128
|
alt: "Karta"
|
|
7400
7129
|
}));
|
|
7401
7130
|
}
|
|
7402
|
-
|
|
7403
7131
|
return React__default.createElement(Placeholder, {
|
|
7404
7132
|
href: `http://maps.google.com/maps?q=${latitude},${longitude}`,
|
|
7405
7133
|
target: "_blank",
|
|
@@ -7415,7 +7143,6 @@ const Branch = ({
|
|
|
7415
7143
|
loading
|
|
7416
7144
|
}) => {
|
|
7417
7145
|
var _branch$location, _branch$location2, _branch$location3, _branch$connections, _branch$location4, _branch$location5, _branch$location6, _branch$location7, _branch$contact;
|
|
7418
|
-
|
|
7419
7146
|
const [modal, setModal] = React.useState(false);
|
|
7420
7147
|
const openModal = React.useCallback(() => setModal(true), []);
|
|
7421
7148
|
const closeModal = React.useCallback(() => setModal(false), []);
|
|
@@ -7424,11 +7151,9 @@ const Branch = ({
|
|
|
7424
7151
|
setModal(false);
|
|
7425
7152
|
}
|
|
7426
7153
|
}, [branch]);
|
|
7427
|
-
|
|
7428
7154
|
if (!branch) {
|
|
7429
7155
|
return null;
|
|
7430
7156
|
}
|
|
7431
|
-
|
|
7432
7157
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(BranchModal, {
|
|
7433
7158
|
loading: loading,
|
|
7434
7159
|
connections: branch === null || branch === void 0 ? void 0 : branch.connections,
|
|
@@ -7575,7 +7300,6 @@ const useSearchItemBranch = (id, branch) => client.useQuery(SEARCH_ITEM_BRANCH_Q
|
|
|
7575
7300
|
|
|
7576
7301
|
const useCentralStorage = vehicle => {
|
|
7577
7302
|
var _vehicle$branch, _connections$find;
|
|
7578
|
-
|
|
7579
7303
|
const {
|
|
7580
7304
|
centralStorageId,
|
|
7581
7305
|
setCentralStorageId
|
|
@@ -7589,10 +7313,8 @@ const useCentralStorage = vehicle => {
|
|
|
7589
7313
|
React.useEffect(() => {
|
|
7590
7314
|
if (((connections === null || connections === void 0 ? void 0 : connections.length) || 0) > 0) {
|
|
7591
7315
|
const match = centralStorageId ? connections === null || connections === void 0 ? void 0 : connections.find(x => x.id === centralStorageId) : undefined;
|
|
7592
|
-
|
|
7593
7316
|
if (!match) {
|
|
7594
7317
|
const first = connections === null || connections === void 0 ? void 0 : connections[0];
|
|
7595
|
-
|
|
7596
7318
|
if (first) {
|
|
7597
7319
|
setCentralStorageId(first.id);
|
|
7598
7320
|
}
|
|
@@ -7619,43 +7341,29 @@ class PropertyTreeCreator {
|
|
|
7619
7341
|
constructor(properties) {
|
|
7620
7342
|
this.propertiesWithCategory = propertyKey => {
|
|
7621
7343
|
var _this$properties$prop;
|
|
7622
|
-
|
|
7623
7344
|
return !!((_this$properties$prop = this.properties[propertyKey].category) !== null && _this$properties$prop !== void 0 && _this$properties$prop.id);
|
|
7624
7345
|
};
|
|
7625
|
-
|
|
7626
7346
|
this.propertiesWithoutCategory = propertyKey => !this.propertiesWithCategory(propertyKey);
|
|
7627
|
-
|
|
7628
7347
|
this.isList = property => property.type === PropertyTreeCreator.TEXT_LIST_TYPE;
|
|
7629
|
-
|
|
7630
7348
|
this.isNonList = property => !this.isList(property);
|
|
7631
|
-
|
|
7632
7349
|
this.hasCategoryWithId = (propertyKey, categoryId) => {
|
|
7633
7350
|
var _this$properties$prop2;
|
|
7634
|
-
|
|
7635
7351
|
return ((_this$properties$prop2 = this.properties[propertyKey].category) === null || _this$properties$prop2 === void 0 ? void 0 : _this$properties$prop2.id) === categoryId;
|
|
7636
7352
|
};
|
|
7637
|
-
|
|
7638
7353
|
this.propertiesWithSubCategory = propertyKey => {
|
|
7639
7354
|
var _this$properties$prop3, _this$properties$prop4;
|
|
7640
|
-
|
|
7641
7355
|
return !!((_this$properties$prop3 = this.properties[propertyKey].category) !== null && _this$properties$prop3 !== void 0 && (_this$properties$prop4 = _this$properties$prop3.subCategory) !== null && _this$properties$prop4 !== void 0 && _this$properties$prop4.id);
|
|
7642
7356
|
};
|
|
7643
|
-
|
|
7644
7357
|
this.propertiesWithoutSubCategory = propertyKey => !this.propertiesWithSubCategory(propertyKey);
|
|
7645
|
-
|
|
7646
7358
|
this.hasSubCategoryWithId = (propertyKey, categoryId) => {
|
|
7647
7359
|
var _this$properties$prop5, _this$properties$prop6;
|
|
7648
|
-
|
|
7649
7360
|
return ((_this$properties$prop5 = this.properties[propertyKey].category) === null || _this$properties$prop5 === void 0 ? void 0 : (_this$properties$prop6 = _this$properties$prop5.subCategory) === null || _this$properties$prop6 === void 0 ? void 0 : _this$properties$prop6.id) === categoryId;
|
|
7650
7361
|
};
|
|
7651
|
-
|
|
7652
7362
|
this.properties = properties;
|
|
7653
7363
|
}
|
|
7654
|
-
|
|
7655
7364
|
create() {
|
|
7656
7365
|
const categories = this.createTreeCategories();
|
|
7657
7366
|
const rootProperties = this.getRootProperties();
|
|
7658
|
-
|
|
7659
7367
|
if (rootProperties.length) {
|
|
7660
7368
|
categories.push({
|
|
7661
7369
|
name: PropertyTreeCreator.DEFAULT_CATEGORY_NAME,
|
|
@@ -7664,29 +7372,24 @@ class PropertyTreeCreator {
|
|
|
7664
7372
|
properties: rootProperties
|
|
7665
7373
|
});
|
|
7666
7374
|
}
|
|
7667
|
-
|
|
7668
7375
|
const tree = {
|
|
7669
7376
|
categories
|
|
7670
7377
|
};
|
|
7671
7378
|
return tree;
|
|
7672
7379
|
}
|
|
7673
|
-
|
|
7674
7380
|
getRootProperties() {
|
|
7675
7381
|
const rootProperties = Object.keys(this.properties).filter(this.propertiesWithoutCategory).map(key => this.properties[key]).filter(this.isNonList);
|
|
7676
7382
|
return rootProperties;
|
|
7677
7383
|
}
|
|
7678
|
-
|
|
7679
7384
|
createTreeCategories() {
|
|
7680
7385
|
const categories = this.getCategories();
|
|
7681
7386
|
const treeCategories = this.convertToTreeCategories(categories);
|
|
7682
7387
|
return treeCategories;
|
|
7683
7388
|
}
|
|
7684
|
-
|
|
7685
7389
|
getCategories() {
|
|
7686
7390
|
const categories = Object.keys(this.properties).filter(this.propertiesWithCategory).map(key => this.properties[key].category).filter(PropertyTreeCreator.distinctCategories);
|
|
7687
7391
|
return categories;
|
|
7688
7392
|
}
|
|
7689
|
-
|
|
7690
7393
|
convertToTreeCategories(categories) {
|
|
7691
7394
|
return categories.map(category => {
|
|
7692
7395
|
const properties = Object.keys(this.properties).filter(key => this.hasCategoryWithId(key, category.id)).filter(this.propertiesWithoutSubCategory).map(key => this.properties[key]).filter(this.isNonList);
|
|
@@ -7699,7 +7402,6 @@ class PropertyTreeCreator {
|
|
|
7699
7402
|
};
|
|
7700
7403
|
});
|
|
7701
7404
|
}
|
|
7702
|
-
|
|
7703
7405
|
createTreeSubCategories(categoryId) {
|
|
7704
7406
|
const subCategories = this.getSubCategoriesOfCategory(categoryId);
|
|
7705
7407
|
const convertedSubCategories = subCategories.map(subCategory => this.convertSubCategory(subCategory)).filter(category => category.properties.length > 0);
|
|
@@ -7707,16 +7409,13 @@ class PropertyTreeCreator {
|
|
|
7707
7409
|
const treeCategories = convertedSubCategories.concat(createdSubCategories);
|
|
7708
7410
|
return treeCategories;
|
|
7709
7411
|
}
|
|
7710
|
-
|
|
7711
7412
|
getSubCategoriesOfCategory(id) {
|
|
7712
7413
|
const categories = Object.keys(this.properties).filter(key => this.hasCategoryWithId(key, id)).filter(this.propertiesWithSubCategory).map(key => {
|
|
7713
7414
|
var _this$properties$key$;
|
|
7714
|
-
|
|
7715
7415
|
return (_this$properties$key$ = this.properties[key].category) === null || _this$properties$key$ === void 0 ? void 0 : _this$properties$key$.subCategory;
|
|
7716
7416
|
}).filter(PropertyTreeCreator.distinctCategories);
|
|
7717
7417
|
return categories;
|
|
7718
7418
|
}
|
|
7719
|
-
|
|
7720
7419
|
convertSubCategory(subCategory) {
|
|
7721
7420
|
const properties = Object.keys(this.properties).filter(key => this.hasSubCategoryWithId(key, subCategory.id)).map(key => this.properties[key]).filter(this.isNonList);
|
|
7722
7421
|
return {
|
|
@@ -7726,7 +7425,6 @@ class PropertyTreeCreator {
|
|
|
7726
7425
|
subCategories: []
|
|
7727
7426
|
};
|
|
7728
7427
|
}
|
|
7729
|
-
|
|
7730
7428
|
createListSubCategories(categoryId) {
|
|
7731
7429
|
const listProperties = Object.keys(this.properties).filter(key => this.hasCategoryWithId(key, categoryId)).map(key => this.properties[key]).filter(this.isList).filter(prop => prop.value.length > 0);
|
|
7732
7430
|
const createdSubCategories = listProperties.map((property, index) => ({
|
|
@@ -7737,7 +7435,6 @@ class PropertyTreeCreator {
|
|
|
7737
7435
|
}));
|
|
7738
7436
|
return createdSubCategories;
|
|
7739
7437
|
}
|
|
7740
|
-
|
|
7741
7438
|
asBoolProperties(listProperty) {
|
|
7742
7439
|
const values = listProperty.value;
|
|
7743
7440
|
const boolProperties = values.map(prop => ({
|
|
@@ -7749,14 +7446,11 @@ class PropertyTreeCreator {
|
|
|
7749
7446
|
}));
|
|
7750
7447
|
return boolProperties;
|
|
7751
7448
|
}
|
|
7752
|
-
|
|
7753
7449
|
}
|
|
7754
|
-
|
|
7755
7450
|
PropertyTreeCreator.distinctCategories = (category, index, self) => {
|
|
7756
7451
|
const firstOccuranceOfId = self.find(value => value.id === category.id);
|
|
7757
7452
|
return !!firstOccuranceOfId && self.indexOf(firstOccuranceOfId) === index;
|
|
7758
7453
|
};
|
|
7759
|
-
|
|
7760
7454
|
PropertyTreeCreator.DEFAULT_CATEGORY_NAME = 'Okategoriserat';
|
|
7761
7455
|
PropertyTreeCreator.DEFAULT_CATEGORY_ID = 0;
|
|
7762
7456
|
PropertyTreeCreator.TEXT_LIST_TYPE = 'text-list';
|
|
@@ -7771,27 +7465,21 @@ const ID_ORDER = Object.freeze({
|
|
|
7771
7465
|
'6': 6,
|
|
7772
7466
|
'119': 7
|
|
7773
7467
|
});
|
|
7774
|
-
|
|
7775
7468
|
const compareById = (firstId, secondId) => {
|
|
7776
7469
|
const firstOrder = ID_ORDER[firstId] || Number.MAX_SAFE_INTEGER;
|
|
7777
7470
|
const secondOrder = ID_ORDER[secondId] || Number.MAX_SAFE_INTEGER;
|
|
7778
|
-
|
|
7779
7471
|
if (firstOrder < secondOrder) {
|
|
7780
7472
|
return -1;
|
|
7781
7473
|
} else if (secondOrder < firstOrder) {
|
|
7782
7474
|
return 1;
|
|
7783
7475
|
}
|
|
7784
|
-
|
|
7785
7476
|
return 0;
|
|
7786
7477
|
};
|
|
7787
|
-
|
|
7788
7478
|
var compareCategories = ((first, second) => {
|
|
7789
7479
|
const result = compareById(`${first.id}`, `${second.id}`);
|
|
7790
|
-
|
|
7791
7480
|
if (result !== 0) {
|
|
7792
7481
|
return result;
|
|
7793
7482
|
}
|
|
7794
|
-
|
|
7795
7483
|
return first.name.localeCompare(second.name);
|
|
7796
7484
|
});
|
|
7797
7485
|
|
|
@@ -7816,27 +7504,21 @@ const ORDER = Object.freeze({
|
|
|
7816
7504
|
Malus: 14,
|
|
7817
7505
|
Bonus: 15
|
|
7818
7506
|
});
|
|
7819
|
-
|
|
7820
7507
|
const compareByPredefinedOrder = (firstId, secondId) => {
|
|
7821
7508
|
const firstOrder = ORDER[firstId] || Number.MAX_SAFE_INTEGER;
|
|
7822
7509
|
const secondOrder = ORDER[secondId] || Number.MAX_SAFE_INTEGER;
|
|
7823
|
-
|
|
7824
7510
|
if (firstOrder < secondOrder) {
|
|
7825
7511
|
return -1;
|
|
7826
7512
|
} else if (secondOrder < firstOrder) {
|
|
7827
7513
|
return 1;
|
|
7828
7514
|
}
|
|
7829
|
-
|
|
7830
7515
|
return 0;
|
|
7831
7516
|
};
|
|
7832
|
-
|
|
7833
7517
|
var compareBasicProperties = ((first, second) => {
|
|
7834
7518
|
const result = compareByPredefinedOrder(`${first.name}`, `${second.name}`);
|
|
7835
|
-
|
|
7836
7519
|
if (result !== 0) {
|
|
7837
7520
|
return result;
|
|
7838
7521
|
}
|
|
7839
|
-
|
|
7840
7522
|
return compareProperties(first, second);
|
|
7841
7523
|
});
|
|
7842
7524
|
|
|
@@ -8030,7 +7712,6 @@ const HINTS = Object.freeze({
|
|
|
8030
7712
|
windowLifts: '',
|
|
8031
7713
|
wirelessPhoneCharger: 'Bilen är utrustad med induktionsladdare, så att telefoner som stödjer trådlös laddning kan laddas i bilen utan laddningssladd.'
|
|
8032
7714
|
});
|
|
8033
|
-
|
|
8034
7715
|
const enrichWithHint = properties => {
|
|
8035
7716
|
const clone = deepCopy(properties);
|
|
8036
7717
|
const keys = Object.keys(clone);
|
|
@@ -8058,7 +7739,6 @@ const ENGINE_SUBCATEGORY = Object.freeze({
|
|
|
8058
7739
|
subCategory: null
|
|
8059
7740
|
}
|
|
8060
7741
|
});
|
|
8061
|
-
|
|
8062
7742
|
class PropertyBuilder {
|
|
8063
7743
|
constructor() {
|
|
8064
7744
|
this.name = '';
|
|
@@ -8068,32 +7748,26 @@ class PropertyBuilder {
|
|
|
8068
7748
|
this.hint = null;
|
|
8069
7749
|
this.category = null;
|
|
8070
7750
|
}
|
|
8071
|
-
|
|
8072
7751
|
withName(name) {
|
|
8073
7752
|
this.name = name;
|
|
8074
7753
|
return this;
|
|
8075
7754
|
}
|
|
8076
|
-
|
|
8077
7755
|
withValue(value) {
|
|
8078
7756
|
this.value = value;
|
|
8079
7757
|
return this;
|
|
8080
7758
|
}
|
|
8081
|
-
|
|
8082
7759
|
withType(type) {
|
|
8083
7760
|
this.type = type;
|
|
8084
7761
|
return this;
|
|
8085
7762
|
}
|
|
8086
|
-
|
|
8087
7763
|
withCategory(category) {
|
|
8088
7764
|
this.category = category;
|
|
8089
7765
|
return this;
|
|
8090
7766
|
}
|
|
8091
|
-
|
|
8092
7767
|
withUnit(unit) {
|
|
8093
7768
|
this.unit = unit;
|
|
8094
7769
|
return this;
|
|
8095
7770
|
}
|
|
8096
|
-
|
|
8097
7771
|
build() {
|
|
8098
7772
|
return {
|
|
8099
7773
|
name: this.name,
|
|
@@ -8104,68 +7778,50 @@ class PropertyBuilder {
|
|
|
8104
7778
|
category: this.category
|
|
8105
7779
|
};
|
|
8106
7780
|
}
|
|
8107
|
-
|
|
8108
7781
|
}
|
|
8109
|
-
|
|
8110
7782
|
var addCustomProperties = ((item, properties) => {
|
|
8111
7783
|
const newProperties = deepCopy(properties);
|
|
8112
|
-
|
|
8113
7784
|
if (!!item.manufacturer) {
|
|
8114
7785
|
newProperties.manufacturer = new PropertyBuilder().withName('Varumärke').withValue(item.manufacturer).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8115
7786
|
}
|
|
8116
|
-
|
|
8117
7787
|
if (!!item.modelSeries) {
|
|
8118
7788
|
newProperties.modelSeries = new PropertyBuilder().withName('Modell').withValue(item.modelSeries).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8119
7789
|
}
|
|
8120
|
-
|
|
8121
7790
|
if (!!item.modelName) {
|
|
8122
7791
|
newProperties.modelName = new PropertyBuilder().withName('Version').withValue(item.modelName).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8123
7792
|
}
|
|
8124
|
-
|
|
8125
7793
|
if (!!item.modelYear) {
|
|
8126
7794
|
newProperties.modelYear = new PropertyBuilder().withName('Modellår').withValue(item.modelYear).withType(NUMBER_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8127
7795
|
}
|
|
8128
|
-
|
|
8129
7796
|
if (!!item.manufactureYear) {
|
|
8130
7797
|
newProperties.manufactureYear = new PropertyBuilder().withName('Tillverkningsår').withValue(item.manufactureYear).withType(NUMBER_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8131
7798
|
}
|
|
8132
|
-
|
|
8133
7799
|
if (!!item.mileage) {
|
|
8134
7800
|
newProperties.mileage = new PropertyBuilder().withName('Mätarställning').withValue(item.mileage).withType(NUMBER_TYPE).withCategory(BASIC_CATEGORY).withUnit('mil').build();
|
|
8135
7801
|
}
|
|
8136
|
-
|
|
8137
7802
|
if (!!item.gearboxType) {
|
|
8138
7803
|
newProperties.gearboxType = new PropertyBuilder().withName('Växellåda').withValue(item.gearboxType).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8139
7804
|
}
|
|
8140
|
-
|
|
8141
7805
|
if (!!item.registrationNumber) {
|
|
8142
7806
|
newProperties.registrationNumber = new PropertyBuilder().withName('Registreringsnummer').withValue(item.registrationNumber).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8143
7807
|
}
|
|
8144
|
-
|
|
8145
7808
|
if (!!item.fuelType) {
|
|
8146
7809
|
newProperties.fuelType = new PropertyBuilder().withName('Bränslegrupp').withValue(item.fuelType).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8147
7810
|
}
|
|
8148
|
-
|
|
8149
7811
|
if (item.enginePower) {
|
|
8150
7812
|
newProperties.enginePower = new PropertyBuilder().withName('Effekt').withValue(item.enginePower).withUnit('hk').withType(NUMBER_TYPE).withCategory(ENGINE_SUBCATEGORY).build();
|
|
8151
7813
|
}
|
|
8152
|
-
|
|
8153
7814
|
return newProperties;
|
|
8154
7815
|
});
|
|
8155
7816
|
|
|
8156
7817
|
const PROPERTY_BLACK_LIST = Object.freeze(['towHitchFoldable']);
|
|
8157
|
-
|
|
8158
7818
|
const isForbiddenProperty = key => PROPERTY_BLACK_LIST.includes(key);
|
|
8159
|
-
|
|
8160
7819
|
const CATEGORY_WHITE_LIST = Object.freeze([1, 2, 6, 8, 71, 119, 1000]);
|
|
8161
|
-
|
|
8162
7820
|
const hasForbiddenCategory = property => !property.category || !property.category.id || !CATEGORY_WHITE_LIST.includes(property.category.id);
|
|
8163
|
-
|
|
8164
7821
|
var removeProperties = (properties => {
|
|
8165
7822
|
const newProperties = deepCopy(properties);
|
|
8166
7823
|
Object.keys(properties).forEach(key => {
|
|
8167
7824
|
const property = properties[key];
|
|
8168
|
-
|
|
8169
7825
|
if (hasForbiddenCategory(property)) {
|
|
8170
7826
|
delete newProperties[key];
|
|
8171
7827
|
} else if (isForbiddenProperty(key)) {
|
|
@@ -8218,18 +7874,14 @@ const formatValue = (value, unit) => {
|
|
|
8218
7874
|
block: true
|
|
8219
7875
|
}));
|
|
8220
7876
|
}
|
|
8221
|
-
|
|
8222
7877
|
if (Array.isArray(value)) {
|
|
8223
7878
|
return value.join(', ');
|
|
8224
7879
|
}
|
|
8225
|
-
|
|
8226
7880
|
if (!!value && !!unit) {
|
|
8227
7881
|
return `${value} ${unit}`;
|
|
8228
7882
|
}
|
|
8229
|
-
|
|
8230
7883
|
return value;
|
|
8231
7884
|
};
|
|
8232
|
-
|
|
8233
7885
|
const MetadataItem = ({
|
|
8234
7886
|
name,
|
|
8235
7887
|
hint,
|
|
@@ -8341,7 +7993,6 @@ const MetadataSubCategory = ({
|
|
|
8341
7993
|
unit: property.unit,
|
|
8342
7994
|
key: `${property.name}-${index}`
|
|
8343
7995
|
}))));
|
|
8344
|
-
|
|
8345
7996
|
const MetadataCategory = ({
|
|
8346
7997
|
properties,
|
|
8347
7998
|
subCategories
|
|
@@ -8358,19 +8009,16 @@ const MetadataCategory = ({
|
|
|
8358
8009
|
properties: subCategory.properties,
|
|
8359
8010
|
key: `${subCategory.name}-${index}`
|
|
8360
8011
|
})));
|
|
8361
|
-
|
|
8362
8012
|
const PropertySet = ({
|
|
8363
8013
|
propertySet,
|
|
8364
8014
|
vehicleData
|
|
8365
8015
|
}) => {
|
|
8366
8016
|
var _mappedProperties$cat2, _mappedProperties$cat3;
|
|
8367
|
-
|
|
8368
8017
|
const [activeCategoryId, setActiveCategoryId] = React.useState(-1);
|
|
8369
8018
|
const mappedProperties = React.useMemo(() => {
|
|
8370
8019
|
if (!propertySet) {
|
|
8371
8020
|
return undefined;
|
|
8372
8021
|
}
|
|
8373
|
-
|
|
8374
8022
|
let newProperties = removeProperties(propertySet);
|
|
8375
8023
|
newProperties = addCustomProperties(vehicleData, newProperties);
|
|
8376
8024
|
const enrichedProperties = enrichWithHint(newProperties);
|
|
@@ -8380,9 +8028,7 @@ const PropertySet = ({
|
|
|
8380
8028
|
}, [propertySet]);
|
|
8381
8029
|
React.useEffect(() => {
|
|
8382
8030
|
var _mappedProperties$cat;
|
|
8383
|
-
|
|
8384
8031
|
const categories = (mappedProperties === null || mappedProperties === void 0 ? void 0 : (_mappedProperties$cat = mappedProperties.categories) === null || _mappedProperties$cat === void 0 ? void 0 : _mappedProperties$cat.length) !== undefined ? mappedProperties === null || mappedProperties === void 0 ? void 0 : mappedProperties.categories : undefined;
|
|
8385
|
-
|
|
8386
8032
|
if (activeCategoryId < 0 && categories !== undefined && categories.length > 0) {
|
|
8387
8033
|
setActiveCategoryId(categories[0].id);
|
|
8388
8034
|
}
|
|
@@ -8421,7 +8067,7 @@ const PdfListItem = styled__default.li.attrs(() => ({
|
|
|
8421
8067
|
flex: 0 0 100%;
|
|
8422
8068
|
}
|
|
8423
8069
|
`;
|
|
8424
|
-
const
|
|
8070
|
+
const List$a = styled__default.ul`
|
|
8425
8071
|
list-style: none;
|
|
8426
8072
|
padding: 0;
|
|
8427
8073
|
display: flex;
|
|
@@ -8465,20 +8111,71 @@ const PdfListInner = styled__default.div`
|
|
|
8465
8111
|
}
|
|
8466
8112
|
`;
|
|
8467
8113
|
|
|
8114
|
+
const translateContentType = document => {
|
|
8115
|
+
switch (document.contentType) {
|
|
8116
|
+
case 'application/pdf':
|
|
8117
|
+
return 'PDF';
|
|
8118
|
+
default:
|
|
8119
|
+
const formattedContentType = document.url && document.url.includes('.') ? document.url.split('.').pop() : '';
|
|
8120
|
+
return formattedContentType;
|
|
8121
|
+
}
|
|
8122
|
+
};
|
|
8468
8123
|
const PdfDownloadItem = ({
|
|
8469
8124
|
document
|
|
8470
|
-
}) =>
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8125
|
+
}) => {
|
|
8126
|
+
const contentType = React.useMemo(() => translateContentType(document), [document]);
|
|
8127
|
+
return React__default.createElement(PdfListItem, null, React__default.createElement(PdfListInner, null, React__default.createElement(PdfColumn, null, React__default.createElement(PdfTitle, null, document.name), React__default.createElement(PdfSubtitle, null, contentType)), React__default.createElement(PdfColumn, null, React__default.createElement(PdfLink, {
|
|
8128
|
+
href: document.url,
|
|
8129
|
+
rel: "noopener noreferrer nofollow",
|
|
8130
|
+
target: "_blank"
|
|
8131
|
+
}, "\u00D6ppna"))));
|
|
8132
|
+
};
|
|
8133
|
+
const DocumentList = ({
|
|
8476
8134
|
documents
|
|
8477
|
-
}) => React__default.createElement(
|
|
8135
|
+
}) => React__default.createElement(List$a, null, documents.map((document, i) => React__default.createElement(PdfDownloadItem, {
|
|
8478
8136
|
key: `${document.url}-${i}`,
|
|
8479
8137
|
document: document
|
|
8480
8138
|
})));
|
|
8481
8139
|
|
|
8140
|
+
const Translation = {
|
|
8141
|
+
'tyre-label': 'Energideklaration för däck',
|
|
8142
|
+
'content declaration': 'Varudeklaration',
|
|
8143
|
+
other: 'Övriga dokument'
|
|
8144
|
+
};
|
|
8145
|
+
const SortOrder = {
|
|
8146
|
+
'tyre-label': 2,
|
|
8147
|
+
'content declaration': 1,
|
|
8148
|
+
other: 3
|
|
8149
|
+
};
|
|
8150
|
+
const Documents = ({
|
|
8151
|
+
documents
|
|
8152
|
+
}) => {
|
|
8153
|
+
const categorised = documents.reduce((prev, curr) => {
|
|
8154
|
+
const index = prev.findIndex(x => x.category === (curr.category || 'others'));
|
|
8155
|
+
if (index > -1) {
|
|
8156
|
+
prev[index].documents.push(curr);
|
|
8157
|
+
} else {
|
|
8158
|
+
var _SortOrder$category;
|
|
8159
|
+
const category = curr.category || 'others';
|
|
8160
|
+
prev.push({
|
|
8161
|
+
category,
|
|
8162
|
+
documents: [curr],
|
|
8163
|
+
sortOrder: (_SortOrder$category = SortOrder === null || SortOrder === void 0 ? void 0 : SortOrder[category]) !== null && _SortOrder$category !== void 0 ? _SortOrder$category : 99
|
|
8164
|
+
});
|
|
8165
|
+
}
|
|
8166
|
+
return prev;
|
|
8167
|
+
}, []).sort((a, b) => a.sortOrder - b.sortOrder);
|
|
8168
|
+
if (!documents.length) return null;
|
|
8169
|
+
const manyCategories = categorised.length > 1;
|
|
8170
|
+
return React__default.createElement(ProductPageMainSection, null, React__default.createElement(Repeat, null, React__default.createElement(H2, {
|
|
8171
|
+
noMargin: true
|
|
8172
|
+
}, "Dokument")), categorised.map(group => React__default.createElement(Repeat, {
|
|
8173
|
+
key: group.category
|
|
8174
|
+
}, manyCategories && React__default.createElement(H3, null, (Translation === null || Translation === void 0 ? void 0 : Translation[group.category]) || Translation.other), React__default.createElement(DocumentList, {
|
|
8175
|
+
documents: group.documents
|
|
8176
|
+
}))));
|
|
8177
|
+
};
|
|
8178
|
+
|
|
8482
8179
|
const WaykeSearchItem = ({
|
|
8483
8180
|
id,
|
|
8484
8181
|
hashRoute,
|
|
@@ -8489,7 +8186,6 @@ const WaykeSearchItem = ({
|
|
|
8489
8186
|
onClickSearchItem
|
|
8490
8187
|
}) => {
|
|
8491
8188
|
var _result$vehicle3, _result$vehicle3$data, _result$vehicle4;
|
|
8492
|
-
|
|
8493
8189
|
const {
|
|
8494
8190
|
ecomSettings
|
|
8495
8191
|
} = useSettings();
|
|
@@ -8516,14 +8212,11 @@ const WaykeSearchItem = ({
|
|
|
8516
8212
|
},
|
|
8517
8213
|
logo: ecomSettings.serviceLogotypeUrl,
|
|
8518
8214
|
logoX2: ecomSettings.serviceLogotypeUrl,
|
|
8519
|
-
|
|
8520
8215
|
onEvent(view, event, currentStep, data) {
|
|
8521
8216
|
PubSub.publish('EcomOnUserEvent', view, event, currentStep, data);
|
|
8522
8217
|
}
|
|
8523
|
-
|
|
8524
8218
|
});
|
|
8525
8219
|
}
|
|
8526
|
-
|
|
8527
8220
|
return () => {
|
|
8528
8221
|
if (ecomContext.current) {
|
|
8529
8222
|
ecomContext.current.destroy();
|
|
@@ -8537,7 +8230,6 @@ const WaykeSearchItem = ({
|
|
|
8537
8230
|
}, []);
|
|
8538
8231
|
React.useEffect(() => {
|
|
8539
8232
|
var _result$vehicle;
|
|
8540
|
-
|
|
8541
8233
|
if (result !== null && result !== void 0 && (_result$vehicle = result.vehicle) !== null && _result$vehicle !== void 0 && _result$vehicle.data && modifyDocumentTitleItem) {
|
|
8542
8234
|
const {
|
|
8543
8235
|
vehicle
|
|
@@ -8550,21 +8242,17 @@ const WaykeSearchItem = ({
|
|
|
8550
8242
|
}, [result]);
|
|
8551
8243
|
const options = React.useMemo(() => {
|
|
8552
8244
|
var _result$vehicle2, _result$vehicle2$data, _result$vehicle2$data2;
|
|
8553
|
-
|
|
8554
8245
|
return result === null || result === void 0 ? void 0 : (_result$vehicle2 = result.vehicle) === null || _result$vehicle2 === void 0 ? void 0 : (_result$vehicle2$data = _result$vehicle2.data) === null || _result$vehicle2$data === void 0 ? void 0 : (_result$vehicle2$data2 = _result$vehicle2$data.options) === null || _result$vehicle2$data2 === void 0 ? void 0 : _result$vehicle2$data2.filter(notEmpty).map(opt => ({
|
|
8555
8246
|
title: opt
|
|
8556
8247
|
}));
|
|
8557
8248
|
}, [result === null || result === void 0 ? void 0 : (_result$vehicle3 = result.vehicle) === null || _result$vehicle3 === void 0 ? void 0 : (_result$vehicle3$data = _result$vehicle3.data) === null || _result$vehicle3$data === void 0 ? void 0 : _result$vehicle3$data.options]);
|
|
8558
8249
|
const onShowMoreOptionsClick = React.useCallback(() => PubSub.publish('OptionsClick'), []);
|
|
8559
|
-
|
|
8560
8250
|
if (loading) {
|
|
8561
8251
|
return React__default.createElement(PageLoading, null);
|
|
8562
8252
|
}
|
|
8563
|
-
|
|
8564
8253
|
if (!(result !== null && result !== void 0 && (_result$vehicle4 = result.vehicle) !== null && _result$vehicle4 !== void 0 && _result$vehicle4.data)) {
|
|
8565
8254
|
return React__default.createElement(Page404, null);
|
|
8566
8255
|
}
|
|
8567
|
-
|
|
8568
8256
|
const {
|
|
8569
8257
|
vehicle
|
|
8570
8258
|
} = result;
|
|
@@ -8597,30 +8285,25 @@ const WaykeSearchItem = ({
|
|
|
8597
8285
|
const uspList = [{
|
|
8598
8286
|
title: modelYear
|
|
8599
8287
|
}];
|
|
8600
|
-
|
|
8601
8288
|
if (flags !== null && flags !== void 0 && flags.demoVersion) {
|
|
8602
8289
|
uspList.push({
|
|
8603
8290
|
title: 'Demobil',
|
|
8604
8291
|
onClick: onToggleDemoCarModal
|
|
8605
8292
|
});
|
|
8606
8293
|
}
|
|
8607
|
-
|
|
8608
8294
|
uspList.push({
|
|
8609
8295
|
title: `${numberSeparator(mileage)} mil`
|
|
8610
8296
|
});
|
|
8611
|
-
|
|
8612
8297
|
if (gearbox) {
|
|
8613
8298
|
uspList.push({
|
|
8614
8299
|
title: gearbox
|
|
8615
8300
|
});
|
|
8616
8301
|
}
|
|
8617
|
-
|
|
8618
8302
|
if (fuelType) {
|
|
8619
8303
|
uspList.push({
|
|
8620
8304
|
title: fuelType
|
|
8621
8305
|
});
|
|
8622
8306
|
}
|
|
8623
|
-
|
|
8624
8307
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(Page, null, React__default.createElement(PageSection, {
|
|
8625
8308
|
large: true
|
|
8626
8309
|
}, React__default.createElement(Container, null, React__default.createElement(ProductPage, null, React__default.createElement(ProductPageAside, null, React__default.createElement(ProductPageAsideSection, {
|
|
@@ -8665,7 +8348,6 @@ const WaykeSearchItem = ({
|
|
|
8665
8348
|
availableFrom: availableFrom,
|
|
8666
8349
|
toggleEcomModal: () => {
|
|
8667
8350
|
var _ecomContext$current;
|
|
8668
|
-
|
|
8669
8351
|
return (_ecomContext$current = ecomContext.current) === null || _ecomContext$current === void 0 ? void 0 : _ecomContext$current.start();
|
|
8670
8352
|
}
|
|
8671
8353
|
}))), React__default.createElement(ProductPageMain, null, React__default.createElement(ProductPageAsideSection, {
|
|
@@ -8689,11 +8371,9 @@ const WaykeSearchItem = ({
|
|
|
8689
8371
|
onClick: onShowMoreOptionsClick
|
|
8690
8372
|
}, React__default.createElement(UspList, {
|
|
8691
8373
|
items: options
|
|
8692
|
-
})))),
|
|
8693
|
-
noMargin: true
|
|
8694
|
-
}, "Dokument")), React__default.createElement(Repeat, null, React__default.createElement(Content$2, null, React__default.createElement("p", null, "Tillh\u00F6rande dokument f\u00F6r bilen."))), React__default.createElement(Repeat, null, React__default.createElement(PdfDownloadContainer, {
|
|
8374
|
+
})))), React__default.createElement(Documents, {
|
|
8695
8375
|
documents: documents
|
|
8696
|
-
})
|
|
8376
|
+
}), React__default.createElement(ProductPageMainSection, null, React__default.createElement(Branch, {
|
|
8697
8377
|
branch: branch,
|
|
8698
8378
|
loading: loadingCentralStorageVehicle
|
|
8699
8379
|
}), ecommerce && ecommerce.enabled && React__default.createElement(Repeat, null, React__default.createElement(ButtonPrimary, {
|
|
@@ -8701,7 +8381,6 @@ const WaykeSearchItem = ({
|
|
|
8701
8381
|
title: "K\u00F6p bilen online",
|
|
8702
8382
|
onClick: () => {
|
|
8703
8383
|
var _ecomContext$current2;
|
|
8704
|
-
|
|
8705
8384
|
return (_ecomContext$current2 = ecomContext.current) === null || _ecomContext$current2 === void 0 ? void 0 : _ecomContext$current2.start();
|
|
8706
8385
|
}
|
|
8707
8386
|
}, "K\u00F6p bilen online"))), React__default.createElement(PackageOptions, {
|
|
@@ -8744,7 +8423,6 @@ const getUrlSearchParamsFromUrl = () => new URLSearchParams(window.location.sear
|
|
|
8744
8423
|
const initialSearchParams = new URLSearchParams();
|
|
8745
8424
|
initialSearchParams.set('hits', '30');
|
|
8746
8425
|
initialSearchParams.set('sort', 'published-desc');
|
|
8747
|
-
|
|
8748
8426
|
const SearchProvider = ({
|
|
8749
8427
|
url,
|
|
8750
8428
|
apiKey,
|
|
@@ -8779,30 +8457,24 @@ const SearchProvider = ({
|
|
|
8779
8457
|
'x-api-key': apiKey
|
|
8780
8458
|
} : {}
|
|
8781
8459
|
}, !initialize || !!(queryFilter !== null && queryFilter !== void 0 && queryFilter.block));
|
|
8782
|
-
|
|
8783
8460
|
const popStateEvent = event => {
|
|
8784
8461
|
const {
|
|
8785
8462
|
currentTarget
|
|
8786
8463
|
} = event;
|
|
8787
|
-
|
|
8788
8464
|
if (currentTarget) {
|
|
8789
8465
|
const nextSearchParams = new URLSearchParams(currentTarget.location.search);
|
|
8790
|
-
|
|
8791
8466
|
if (!nextSearchParams.has('sort')) {
|
|
8792
8467
|
nextSearchParams.set('sort', 'published-desc');
|
|
8793
8468
|
}
|
|
8794
|
-
|
|
8795
8469
|
setQueryFilter({
|
|
8796
8470
|
searchParams: nextSearchParams
|
|
8797
8471
|
});
|
|
8798
8472
|
}
|
|
8799
8473
|
};
|
|
8800
|
-
|
|
8801
8474
|
React.useEffect(() => {
|
|
8802
8475
|
if (useQueryParamsFromUrl) {
|
|
8803
8476
|
window.addEventListener('popstate', popStateEvent);
|
|
8804
8477
|
}
|
|
8805
|
-
|
|
8806
8478
|
const onFilterUpdateEvent = {
|
|
8807
8479
|
actionName: 'onFilterUpdate',
|
|
8808
8480
|
callback: onFilterUpdate
|
|
@@ -8823,25 +8495,19 @@ const SearchProvider = ({
|
|
|
8823
8495
|
const nextSearchParams = new URLSearchParams(queryFilter.searchParams);
|
|
8824
8496
|
nextSearchParams.delete('hits');
|
|
8825
8497
|
nextSearchParams.delete('offset');
|
|
8826
|
-
|
|
8827
8498
|
if (nextSearchParams.get('sort') === 'published-desc') {
|
|
8828
8499
|
nextSearchParams.delete('sort');
|
|
8829
8500
|
}
|
|
8830
|
-
|
|
8831
8501
|
const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
|
|
8832
|
-
|
|
8833
8502
|
if (initialize) {
|
|
8834
8503
|
if (window.location.search.localeCompare(nextSearch) !== 0) {
|
|
8835
8504
|
const _path = pathRoute === null || pathRoute === void 0 ? void 0 : pathRoute.replace(/^\/|\/$/g, '');
|
|
8836
|
-
|
|
8837
8505
|
const prefix = _path ? `/${_path}/` : '/';
|
|
8838
8506
|
const index = _path ? window.location.pathname.indexOf(prefix) : -1;
|
|
8839
8507
|
let pathname = window.location.pathname;
|
|
8840
|
-
|
|
8841
8508
|
if (index > -1) {
|
|
8842
8509
|
pathname = pathname.substr(0, index);
|
|
8843
8510
|
}
|
|
8844
|
-
|
|
8845
8511
|
pushState(`${pathname}${nextSearch}`);
|
|
8846
8512
|
}
|
|
8847
8513
|
}
|
|
@@ -8850,17 +8516,14 @@ const SearchProvider = ({
|
|
|
8850
8516
|
React.useEffect(() => {
|
|
8851
8517
|
if (response) {
|
|
8852
8518
|
var _response$query;
|
|
8853
|
-
|
|
8854
8519
|
if (!initialFacets && !useQueryParamsFromUrl) {
|
|
8855
8520
|
setInitialFacets(response.facets);
|
|
8856
8521
|
}
|
|
8857
|
-
|
|
8858
8522
|
if (useQueryParamsFromUrl && (_response$query = response.query) !== null && _response$query !== void 0 && _response$query.parameters) {
|
|
8859
8523
|
const nextSearchParams = new URLSearchParams(response.query.parameters);
|
|
8860
8524
|
nextSearchParams.delete('hits');
|
|
8861
8525
|
nextSearchParams.delete('offset');
|
|
8862
8526
|
const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
|
|
8863
|
-
|
|
8864
8527
|
if (window.location.search.localeCompare(nextSearch) !== 0) {
|
|
8865
8528
|
replaceState(`${window.location.pathname}${nextSearch}`);
|
|
8866
8529
|
setQueryFilter({
|
|
@@ -8869,7 +8532,6 @@ const SearchProvider = ({
|
|
|
8869
8532
|
});
|
|
8870
8533
|
}
|
|
8871
8534
|
}
|
|
8872
|
-
|
|
8873
8535
|
if (queryFilter !== null && queryFilter !== void 0 && queryFilter.concatResult) {
|
|
8874
8536
|
setDocuments([...(documents || []), ...(response.documentList.documents || [])]);
|
|
8875
8537
|
} else {
|
|
@@ -8882,7 +8544,6 @@ const SearchProvider = ({
|
|
|
8882
8544
|
if (!initialize) {
|
|
8883
8545
|
setInitialize(true);
|
|
8884
8546
|
}
|
|
8885
|
-
|
|
8886
8547
|
setQueryFilter({
|
|
8887
8548
|
searchParams: new URLSearchParams(nextQuery)
|
|
8888
8549
|
});
|
|
@@ -8891,7 +8552,6 @@ const SearchProvider = ({
|
|
|
8891
8552
|
const onLoadMore = React.useCallback(() => {
|
|
8892
8553
|
if (response) {
|
|
8893
8554
|
var _response$documentLis;
|
|
8894
|
-
|
|
8895
8555
|
setQueryFilter({
|
|
8896
8556
|
searchParams: new URLSearchParams(response === null || response === void 0 ? void 0 : (_response$documentLis = response.documentList.pagination.nextPage) === null || _response$documentLis === void 0 ? void 0 : _response$documentLis.query),
|
|
8897
8557
|
concatResult: true
|
|
@@ -8902,40 +8562,32 @@ const SearchProvider = ({
|
|
|
8902
8562
|
if (!initialize) {
|
|
8903
8563
|
const searchParamsFromUrl = getUrlSearchParamsFromUrl();
|
|
8904
8564
|
const initialQueryParams = useQueryParamsFromUrl ? searchParamsFromUrl : _initialQueryParams;
|
|
8905
|
-
|
|
8906
8565
|
if (useQueryParamsFromUrl && _initialQueryParams) {
|
|
8907
8566
|
_initialQueryParams.forEach((value, key) => {
|
|
8908
8567
|
var _initialQueryParams$g;
|
|
8909
|
-
|
|
8910
8568
|
if (!(initialQueryParams !== null && initialQueryParams !== void 0 && (_initialQueryParams$g = initialQueryParams.getAll(key)) !== null && _initialQueryParams$g !== void 0 && _initialQueryParams$g.some(v => v === value))) {
|
|
8911
8569
|
initialQueryParams === null || initialQueryParams === void 0 ? void 0 : initialQueryParams.append(key, value);
|
|
8912
8570
|
}
|
|
8913
8571
|
});
|
|
8914
8572
|
}
|
|
8915
|
-
|
|
8916
8573
|
if (initialQueryParams) {
|
|
8917
8574
|
const nextSearchParams = new URLSearchParams(initialQueryParams);
|
|
8918
8575
|
nextSearchParams.delete('hits');
|
|
8919
8576
|
nextSearchParams.delete('offset');
|
|
8920
|
-
|
|
8921
8577
|
if (!initialQueryParams.has('hits')) {
|
|
8922
8578
|
initialQueryParams.set('hits', '30');
|
|
8923
8579
|
}
|
|
8924
|
-
|
|
8925
8580
|
if (!initialQueryParams.has('sort')) {
|
|
8926
8581
|
initialQueryParams.set('sort', 'published-desc');
|
|
8927
8582
|
}
|
|
8928
|
-
|
|
8929
8583
|
const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
|
|
8930
8584
|
setQueryFilter({
|
|
8931
8585
|
searchParams: initialQueryParams
|
|
8932
8586
|
});
|
|
8933
|
-
|
|
8934
8587
|
if (useQueryParamsFromUrl) {
|
|
8935
8588
|
replaceState(`${window.location.pathname}${nextSearch}`);
|
|
8936
8589
|
}
|
|
8937
8590
|
}
|
|
8938
|
-
|
|
8939
8591
|
setInitialize(true);
|
|
8940
8592
|
}
|
|
8941
8593
|
}, [initialize]);
|
|
@@ -9073,15 +8725,12 @@ const SET_PATH = 'SET_PATH';
|
|
|
9073
8725
|
const initialState = {
|
|
9074
8726
|
path: window.location.pathname
|
|
9075
8727
|
};
|
|
9076
|
-
|
|
9077
8728
|
const pathReducer = (state, action) => {
|
|
9078
8729
|
const next = _objectSpread2({}, state);
|
|
9079
|
-
|
|
9080
8730
|
switch (action.type) {
|
|
9081
8731
|
case SET_PATH:
|
|
9082
8732
|
next.path = action.path;
|
|
9083
8733
|
return next;
|
|
9084
|
-
|
|
9085
8734
|
default:
|
|
9086
8735
|
throw new Error(`Unsupported action type`);
|
|
9087
8736
|
}
|
|
@@ -9089,7 +8738,6 @@ const pathReducer = (state, action) => {
|
|
|
9089
8738
|
|
|
9090
8739
|
const regexGuidAnyWhere = /(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}/g;
|
|
9091
8740
|
const POP_STATE = 'popstate';
|
|
9092
|
-
|
|
9093
8741
|
const PathProvider = ({
|
|
9094
8742
|
children
|
|
9095
8743
|
}) => {
|
|
@@ -9102,7 +8750,6 @@ const PathProvider = ({
|
|
|
9102
8750
|
path: window.location.pathname
|
|
9103
8751
|
});
|
|
9104
8752
|
};
|
|
9105
|
-
|
|
9106
8753
|
window.addEventListener(POP_STATE, onPopState);
|
|
9107
8754
|
return () => {
|
|
9108
8755
|
window.removeEventListener(POP_STATE, onPopState);
|
|
@@ -9112,11 +8759,9 @@ const PathProvider = ({
|
|
|
9112
8759
|
const h1 = window.location.hash;
|
|
9113
8760
|
history.pushState(null, '', `${path}`);
|
|
9114
8761
|
const h2 = window.location.hash;
|
|
9115
|
-
|
|
9116
8762
|
if (h1.localeCompare(h2) !== 0) {
|
|
9117
8763
|
window.dispatchEvent(new HashChangeEvent('hashchange'));
|
|
9118
8764
|
}
|
|
9119
|
-
|
|
9120
8765
|
dispatch({
|
|
9121
8766
|
type: SET_PATH,
|
|
9122
8767
|
path
|
|
@@ -9126,11 +8771,9 @@ const PathProvider = ({
|
|
|
9126
8771
|
const h1 = window.location.hash;
|
|
9127
8772
|
history.replaceState(null, '', path);
|
|
9128
8773
|
const h2 = window.location.hash;
|
|
9129
|
-
|
|
9130
8774
|
if (h1.localeCompare(h2) !== 0) {
|
|
9131
8775
|
window.dispatchEvent(new HashChangeEvent('hashchange'));
|
|
9132
8776
|
}
|
|
9133
|
-
|
|
9134
8777
|
dispatch({
|
|
9135
8778
|
type: SET_PATH,
|
|
9136
8779
|
path
|
|
@@ -9138,7 +8781,6 @@ const PathProvider = ({
|
|
|
9138
8781
|
}, []);
|
|
9139
8782
|
const id = React.useMemo(() => {
|
|
9140
8783
|
var _state$path$match;
|
|
9141
|
-
|
|
9142
8784
|
return (_state$path$match = state.path.match(regexGuidAnyWhere)) === null || _state$path$match === void 0 ? void 0 : _state$path$match.pop();
|
|
9143
8785
|
}, [state.path]);
|
|
9144
8786
|
const value = React.useMemo(() => _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -9182,25 +8824,20 @@ const WaykeProvider = ({
|
|
|
9182
8824
|
|
|
9183
8825
|
const regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
9184
8826
|
const HASH_CHANGE = 'hashchange';
|
|
9185
|
-
|
|
9186
8827
|
const getGuid = () => {
|
|
9187
8828
|
const guid = window.location.hash.substr(1, window.location.hash.length);
|
|
9188
8829
|
return regexGuid.test(guid) || !guid ? guid : undefined;
|
|
9189
8830
|
};
|
|
9190
|
-
|
|
9191
8831
|
const useHashGuid = () => {
|
|
9192
8832
|
const [id, setId] = React.useState(() => getGuid());
|
|
9193
|
-
|
|
9194
8833
|
const onHashChange = () => {
|
|
9195
8834
|
const guid = window.location.hash.substr(1, window.location.hash.length);
|
|
9196
|
-
|
|
9197
8835
|
if (regexGuid.test(guid) || !guid) {
|
|
9198
8836
|
setId(window.location.hash.substr(1, window.location.hash.length));
|
|
9199
8837
|
} else {
|
|
9200
8838
|
throw 'Invalid Guid';
|
|
9201
8839
|
}
|
|
9202
8840
|
};
|
|
9203
|
-
|
|
9204
8841
|
React.useEffect(() => {
|
|
9205
8842
|
onHashChange();
|
|
9206
8843
|
window.addEventListener(HASH_CHANGE, onHashChange);
|