From 383d1b3b2437470d8ac54877b782a1fbcb8cea13 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Thu, 23 Nov 2023 15:04:07 +0100 Subject: [PATCH] feat(description): don't truncate by default (#668) --- packages/metascraper-description/README.md | 2 +- packages/metascraper-helpers/index.js | 4 +- packages/metascraper-helpers/test/index.js | 35 +++++++++++++++--- .../test/snapshots/index.js.md | 3 +- .../test/snapshots/index.js.snap | Bin 2932 -> 3034 bytes .../metascraper-spotify/test/description.js | 2 +- .../test/snapshots/index.js.md | 2 +- .../test/snapshots/index.js.snap | Bin 1389 -> 1756 bytes .../anandtech/snapshots/index.js.md | 2 +- .../anandtech/snapshots/index.js.snap | Bin 700 -> 776 bytes .../integration/bukvy/snapshots/index.js.md | 2 +- .../integration/bukvy/snapshots/index.js.snap | Bin 831 -> 873 bytes .../integration/health/snapshots/index.js.md | 2 +- .../health/snapshots/index.js.snap | Bin 708 -> 709 bytes .../test/integration/qz/snapshots/index.js.md | 2 +- .../integration/qz/snapshots/index.js.snap | Bin 629 -> 651 bytes .../reactpodcast/snapshots/index.js.md | 2 +- .../reactpodcast/snapshots/index.js.snap | Bin 760 -> 843 bytes .../snapshots/index.js.md | 2 +- .../snapshots/index.js.snap | Bin 717 -> 1752 bytes .../smitten-kitchen/snapshots/index.js.md | 2 +- .../smitten-kitchen/snapshots/index.js.snap | Bin 616 -> 622 bytes .../substack/snapshots/index.js.md | 2 +- .../substack/snapshots/index.js.snap | Bin 836 -> 860 bytes .../the-boston-globe/snapshots/index.js.md | 2 +- .../the-boston-globe/snapshots/index.js.snap | Bin 802 -> 817 bytes 26 files changed, 44 insertions(+), 22 deletions(-) diff --git a/packages/metascraper-description/README.md b/packages/metascraper-description/README.md index 1357adb99..8f25ab07b 100644 --- a/packages/metascraper-description/README.md +++ b/packages/metascraper-description/README.md @@ -23,7 +23,7 @@ $ npm install metascraper-description --save ##### truncateLength Type: `number`
-Default: `300` +Default: `Number.MAX_SAFE_INTEGER` Truncate the value extracted to a maximum size. diff --git a/packages/metascraper-helpers/index.js b/packages/metascraper-helpers/index.js index 0598b2d8c..7e4326401 100644 --- a/packages/metascraper-helpers/index.js +++ b/packages/metascraper-helpers/index.js @@ -115,8 +115,6 @@ const REGEX_LOCATION = /^[A-Z\s]+\s+[-—–]\s+/ const REGEX_TITLE_SEPARATOR = /^[^|\-/•—]+/ -const TRUNCATE_MAX_LENGTH = 300 - const AUTHOR_MAX_LENGTH = 128 const removeLocation = value => replace(value, REGEX_LOCATION, '') @@ -253,7 +251,7 @@ const description = (value, opts) => const getDescription = ( str, - { truncateLength = TRUNCATE_MAX_LENGTH, ellipsis = '…', ...opts } = {} + { truncateLength = Number.MAX_SAFE_INTEGER, ellipsis = '…', ...opts } = {} ) => { let truncated = str.slice(0, truncateLength) if (truncated.length < str.length) truncated = truncated.trim() + ellipsis diff --git a/packages/metascraper-helpers/test/index.js b/packages/metascraper-helpers/test/index.js index de52ab36c..35b293432 100644 --- a/packages/metascraper-helpers/test/index.js +++ b/packages/metascraper-helpers/test/index.js @@ -58,11 +58,32 @@ test('.normalizeUrl', t => { ) t.is(normalizeUrl('https://example.com/'), 'https://example.com/') t.is(normalizeUrl('https://example.com'), 'https://example.com/') - t.is(normalizeUrl('https://www.example.com', 'https://www.example.com/foo'), 'https://www.example.com/foo') - t.is(normalizeUrl('https://www.example.com', '/foo'), 'https://www.example.com/foo') - t.is(normalizeUrl('https://www.example.com', 'file.html'), 'https://www.example.com/file.html') - t.is(normalizeUrl('https://www.example.com', 'data:text/html;base64,PGh0bWw+SGVsbG8sIHdvcmxkITwvaHRtbD4='), 'data:text/html;base64,PGh0bWw+SGVsbG8sIHdvcmxkITwvaHRtbD4=') - t.is(normalizeUrl('https://www.example.com', 'javascript:alert(\'Hello, world!\');'), undefined) + t.is( + normalizeUrl('https://www.example.com', 'https://www.example.com/foo'), + 'https://www.example.com/foo' + ) + t.is( + normalizeUrl('https://www.example.com', '/foo'), + 'https://www.example.com/foo' + ) + t.is( + normalizeUrl('https://www.example.com', 'file.html'), + 'https://www.example.com/file.html' + ) + t.is( + normalizeUrl( + 'https://www.example.com', + 'data:text/html;base64,PGh0bWw+SGVsbG8sIHdvcmxkITwvaHRtbD4=' + ), + 'data:text/html;base64,PGh0bWw+SGVsbG8sIHdvcmxkITwvaHRtbD4=' + ) + t.is( + normalizeUrl( + 'https://www.example.com', + "javascript:alert('Hello, world!');" + ), + undefined + ) t.is(normalizeUrl('https://www.example.com', 'javascript:void(0)'), undefined) }) @@ -277,10 +298,12 @@ test('.isImageExtension', t => { test('.description', t => { t.is( description( - 'Let me tell you the story of two investors, neither of whom knew each other, but whose paths crossed in an interesting way. Grace Groner was orphaned at age 12. She never married. She never had kids. She never drove a car. She lived most of her life alone in a one-bedroom house and worked her whole career as a secretary. She was, by all accounts, a lovely lady. But she lived a humble and quiet life. That made the $7 million she left to charity after her death in 2010 at age 100 all the more confusing. People who knew her asked: Where did Grace get all that money? But there was no secret. There was no inheritance. Grace took humble savings from a meager salary and enjoyed eighty years of hands-off compounding in the stock market. That was it. Weeks after Grace died, an unrelated investing story hit the news. Richard Fuscone, former vice chairman of Merrill Lynch’s Latin America division, declared personal bankruptcy, fighting off foreclosure on two homes, one of which was nearly 20,000 square feet and had a $66,000 a month mortgage. Fuscone was the opposite of Grace Groner; educated at Harvard and University of Chicago, he became so successful in the investment industry that he retired in his 40s to “pursue personal and charitable interests.” But heavy borrowing and illiquid investments did him in. The same year Grace Goner left a veritable fortune to charity, Richard stood before a bankruptcy judge and declared: “I have been devastated by the financial crisis … The only source of liquidity is whatever my wife is able to sell in terms of personal furnishings.” The purpose of these stories is not to say you should be like Grace and avoid being like Richard. It’s to point out that there is no other field where these stories are even possible. In what other field does someone with no education, no relevant experience, no resources, and no connections vastly outperform someone with the best education, the most relevant experiences, the best resources and the best connections? There will never be a story of a Grace Groner performing heart surgery better than a Harvard-trained cardiologist. Or building a faster chip than Apple’s engineers. Unthinkable. But these stories happen in investing. That’s because investing is not the study of finance. It’s the study of how people behave with money. And behavior is hard to teach, even to really smart people. You can’t sum up behavior with formulas to memorize or spreadsheet models to follow. Behavior is inborn, varies by person, is hard to measure, changes over time, and people are prone to deny its existence, especially when describing themselves. Grace and Richard show that managing money isn’t necessarily about what you know; it’s how you behave. But that’s not how finance is typically taught or discussed. The finance industry talks too much about what to do, and not enough about what happens in your head when you try to do it. This report describes 20 flaws, biases, and causes of bad behavior I’ve seen pop up often when people deal with money. 1. Earned success and deserved failure fallacy: A tendency to underestimate the role of luck and risk, and a failure to recognize that luck and risk are different sides of the same coin. I like to ask people, “What do you want to know about investing that we can’t know?” It’s not a practical question. So few people ask it. But it forces anyone you ask to think about what they intuitively think is true but don’t spend much time trying to answer because it’s futile. Years ago I asked economist Robert Shiller the question. He answered, “The exact role of luck in successful outcomes.” I love that, because no one thinks luck doesn’t play a role in financial success. But since it’s hard to quantify luck, and rude to suggest people’s success is owed to luck, the default stance is often to implicitly ignore luck as a factor. If I say, “There are a billion investors in the world. By sheer chance, would you expect 100 of them to become billionaires predominately off luck?” You would reply, “Of course.” But then if I ask you to name those investors – to their face – you will back down. That’s the problem. The same goes for failure. Did failed businesses not try hard enough? Were bad investments not thought through well enough?' + 'Let me tell you the story of two investors, neither of whom knew each other, but whose paths crossed in an interesting way. Grace Groner was orphaned at age 12. She never married. She never had kids. She never drove a car. She lived most of her life alone in a one-bedroom house and worked her whole career as a secretary. She was, by all accounts, a lovely lady. But she lived a humble and quiet life. That made the $7 million she left to charity after her death in 2010 at age 100 all the more confusing. People who knew her asked: Where did Grace get all that money? But there was no secret. There was no inheritance. Grace took humble savings from a meager salary and enjoyed eighty years of hands-off compounding in the stock market. That was it. Weeks after Grace died, an unrelated investing story hit the news. Richard Fuscone, former vice chairman of Merrill Lynch’s Latin America division, declared personal bankruptcy, fighting off foreclosure on two homes, one of which was nearly 20,000 square feet and had a $66,000 a month mortgage. Fuscone was the opposite of Grace Groner; educated at Harvard and University of Chicago, he became so successful in the investment industry that he retired in his 40s to “pursue personal and charitable interests.” But heavy borrowing and illiquid investments did him in. The same year Grace Goner left a veritable fortune to charity, Richard stood before a bankruptcy judge and declared: “I have been devastated by the financial crisis … The only source of liquidity is whatever my wife is able to sell in terms of personal furnishings.” The purpose of these stories is not to say you should be like Grace and avoid being like Richard. It’s to point out that there is no other field where these stories are even possible. In what other field does someone with no education, no relevant experience, no resources, and no connections vastly outperform someone with the best education, the most relevant experiences, the best resources and the best connections? There will never be a story of a Grace Groner performing heart surgery better than a Harvard-trained cardiologist. Or building a faster chip than Apple’s engineers. Unthinkable. But these stories happen in investing. That’s because investing is not the study of finance. It’s the study of how people behave with money. And behavior is hard to teach, even to really smart people. You can’t sum up behavior with formulas to memorize or spreadsheet models to follow. Behavior is inborn, varies by person, is hard to measure, changes over time, and people are prone to deny its existence, especially when describing themselves. Grace and Richard show that managing money isn’t necessarily about what you know; it’s how you behave. But that’s not how finance is typically taught or discussed. The finance industry talks too much about what to do, and not enough about what happens in your head when you try to do it. This report describes 20 flaws, biases, and causes of bad behavior I’ve seen pop up often when people deal with money. 1. Earned success and deserved failure fallacy: A tendency to underestimate the role of luck and risk, and a failure to recognize that luck and risk are different sides of the same coin. I like to ask people, “What do you want to know about investing that we can’t know?” It’s not a practical question. So few people ask it. But it forces anyone you ask to think about what they intuitively think is true but don’t spend much time trying to answer because it’s futile. Years ago I asked economist Robert Shiller the question. He answered, “The exact role of luck in successful outcomes.” I love that, because no one thinks luck doesn’t play a role in financial success. But since it’s hard to quantify luck, and rude to suggest people’s success is owed to luck, the default stance is often to implicitly ignore luck as a factor. If I say, “There are a billion investors in the world. By sheer chance, would you expect 100 of them to become billionaires predominately off luck?” You would reply, “Of course.” But then if I ask you to name those investors – to their face – you will back down. That’s the problem. The same goes for failure. Did failed businesses not try hard enough? Were bad investments not thought through well enough?', + { truncateLength: 300 } ), 'Let me tell you the story of two investors, neither of whom knew each other, but whose paths crossed in an interesting way. Grace Groner was orphaned at age 12. She never married. She never had kids. She never drove a car. She lived most of her life alone in a one-bedroom house and worked her whole…' ) + t.is( description( 'He talks about the ocean and his favorite animal the cowrie...' diff --git a/packages/metascraper-instagram/test/snapshots/index.js.md b/packages/metascraper-instagram/test/snapshots/index.js.md index 85aed20d1..e016790a7 100644 --- a/packages/metascraper-instagram/test/snapshots/index.js.md +++ b/packages/metascraper-instagram/test/snapshots/index.js.md @@ -28,7 +28,8 @@ Generated by [AVA](https://avajs.dev). { author: 'Willyrex', date: '2021-05-08T18:57:43.000Z', - description: '¿Listos? Nuevo #SORTEO en mi perfil 📱 Una vez más os traigo lo nuevo de OPPO, os presento el nuevo #OPPOFindX3Neo Su cámara es una auténtica locura, viene con Sensor IMX766 de 50 MP. Por la batería no os preocupéis, tiene carga SuperVOOC 2.0, 100% en 38 min. Además, tiene un diseño fino y ultrali…', + description: `¿Listos? Nuevo #SORTEO en mi perfil 📱 Una vez más os traigo lo nuevo de OPPO, os presento el nuevo #OPPOFindX3Neo Su cámara es una auténtica locura, viene con Sensor IMX766 de 50 MP. Por la batería no os preocupéis, tiene carga SuperVOOC 2.0, 100% en 38 min. Además, tiene un diseño fino y ultraligero 🏸 ¿Queréis uno como el mío? Participa ahora mismo: - Dale like a la publicación␊ + - Sigue a OPPO @oppomobilees ¡Mucha suerte amig@s!`, image: 'https://instagram.fpit1-1.fna.fbcdn.net/v/t51.2885-15/e35/p1080x1080/183037094_508540027000559_4927547535791161246_n.jpg?tp=1&_nc_ht=instagram.fpit1-1.fna.fbcdn.net&_nc_cat=111&_nc_ohc=3GrGLwIF7PoAX-qfrOc&edm=AABBvjUBAAAA&ccb=7-4&oh=8a1021ad544a2f1a4bf911b4c371af85&oe=60BC6710&_nc_sid=83d603', lang: 'fr', logo: 'https://www.instagram.com/static/images/ico/favicon-192.png/68d99ba29cc8.png', diff --git a/packages/metascraper-instagram/test/snapshots/index.js.snap b/packages/metascraper-instagram/test/snapshots/index.js.snap index ac534e5a162e1cee50b25d66aebf3359f48b12c0..eafdb0292a5ce5a2421b9cc36a28a1ab972fd89c 100644 GIT binary patch literal 3034 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 diff --git a/packages/metascraper-spotify/test/description.js b/packages/metascraper-spotify/test/description.js index 8d6bf641b..0fd098479 100644 --- a/packages/metascraper-spotify/test/description.js +++ b/packages/metascraper-spotify/test/description.js @@ -32,7 +32,7 @@ test('episode', async t => { t.is( metadata.description, - 'In this Hasty Treat, Scott and Wes talk about modules in Node — what are they, how they’re different from browser modules, and more! Sentry - Sponsor If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and…' + 'In this Hasty Treat, Scott and Wes talk about modules in Node — what are they, how they’re different from browser modules, and more! Sentry - Sponsor If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”. Show Notes 3:06 - How were they done before? 5:11 - How do they work? 7:07 - How to use Modules in Node 9:57 - Gotchas 13:18 - What should you use? Links Node Node Modules Babel ESM Meteor Keystone MJS Tweet us your tasty treats! Scott’s Instagram LevelUpTutorials Instagram Wes’ Instagram Wes’ Twitter Wes’ Facebook Scott’s Twitter Make sure to include @SyntaxFM in your tweets' ) }) diff --git a/packages/metascraper-spotify/test/snapshots/index.js.md b/packages/metascraper-spotify/test/snapshots/index.js.md index 47a73451d..402df615c 100644 --- a/packages/metascraper-spotify/test/snapshots/index.js.md +++ b/packages/metascraper-spotify/test/snapshots/index.js.md @@ -316,7 +316,7 @@ Generated by [AVA](https://avajs.dev). audio: 'https://podz-content.spotifycdn.com/audio/clips/4dcJc7WFMTmEWo5LmivA54/clip_546000_597200.mp3', author: 'Syntax - Tasty Web Development Treats', date: '2020-01-06T14:00:00.000Z', - description: 'In this Hasty Treat, Scott and Wes talk about modules in Node — what are they, how they’re different from browser modules, and more! Sentry - Sponsor If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and…', + description: 'In this Hasty Treat, Scott and Wes talk about modules in Node — what are they, how they’re different from browser modules, and more! Sentry - Sponsor If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”. Show Notes 3:06 - How were they done before? 5:11 - How do they work? 7:07 - How to use Modules in Node 9:57 - Gotchas 13:18 - What should you use? Links Node Node Modules Babel ESM Meteor Keystone MJS Tweet us your tasty treats! Scott’s Instagram LevelUpTutorials Instagram Wes’ Instagram Wes’ Twitter Wes’ Facebook Scott’s Twitter Make sure to include @SyntaxFM in your tweets', image: 'https://i.scdn.co/image/ab6765630000ba8ab84c022aff150c336f73b395', lang: 'en', publisher: 'Spotify', diff --git a/packages/metascraper-spotify/test/snapshots/index.js.snap b/packages/metascraper-spotify/test/snapshots/index.js.snap index 3d58d45e3086cef44eb4e52e1204b96661d2c5bc..501079d67ed11df717af70d308f4a059d4f66bbb 100644 GIT binary patch literal 1756 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 diff --git a/packages/metascraper/test/integration/bukvy/snapshots/index.js.md b/packages/metascraper/test/integration/bukvy/snapshots/index.js.md index 3571c48c9..23525872c 100644 --- a/packages/metascraper/test/integration/bukvy/snapshots/index.js.md +++ b/packages/metascraper/test/integration/bukvy/snapshots/index.js.md @@ -12,7 +12,7 @@ Generated by [AVA](https://avajs.dev). audio: null, author: 'Буквы', date: '2019-01-06T07:43:59.000Z', - description: 'Президент Петр Порошенко заявил, что государство будет уважать религиозный выбор и вероисповедание каждого гражданина страны. Об этом он заявил в обращении после торжественной церемонии вручения в Стамбуле Томоса об автокефалии Православной церкви Украины. “Я как Президент гарантирую от имени госуда…', + description: 'Президент Петр Порошенко заявил, что государство будет уважать религиозный выбор и вероисповедание каждого гражданина страны. Об этом он заявил в обращении после торжественной церемонии вручения в Стамбуле Томоса об автокефалии Православной церкви Украины. “Я как Президент гарантирую от имени государства, что Украина будет уважать религиозный выбор и свободу вероисповедания каждого гражданина”, – подчеркнул он. Петр […]', image: 'https://bykvu.com/ru/kd_image_generate/141935.jpg', lang: null, logo: 'https://bykvu.com/wp-content/themes/bykvu/img/android-icon-192x192.png', diff --git a/packages/metascraper/test/integration/bukvy/snapshots/index.js.snap b/packages/metascraper/test/integration/bukvy/snapshots/index.js.snap index 82e2b3b9917536751a10755554606bad1692611c..a6325e9f176476ce2a2dd84f5f711802d8e4f79a 100644 GIT binary patch literal 873 zcmV-v1D5`2Rc-lAiu5>lpF8Q>c!#k z&T8te>>rB=00000000B6R7+12Q52q`w5W(eaN+X)0H!l7ASpk zOy*H3tF{=>pc3O&CB?**iG5-zwETs8H*VbVOFZ{Z3oy-CYS9f!&n)I@TqV5>7<)ls5DOVLmcI8Krdm(Ouqd)!%fBhkRp8~A`Re^p0-5BS% z6`(bspFk5~j{6D}k8s>9ADQ7J_mdel$?-SAXY3Xq;`s0kAC^5u zH<=Wg3fLmD=cY}2C|<+w$Oi7>2H6fcjstFWDBO-qv4kMS1nJHLX=!<3et9twl_cqL zAZSuios_Lxu5KCw-Pmjh?~)R3$E1q9grXts^bnR<74=OOe+AA4sIiWLld^Z&}10E*H`!+JzPT+3R6S=D8ip`9g#N_ zGCo4^*E`n^6r{>J4Ir;r#~ljem^KG!+lWSjbsuo~JyM?@#2g^9$-uVp5zXrdHeePT zWXsP)c3A!@#MQuwj)tbhdlU?-P-E2*m>UdY7c#y8>Cn%%%Nl76z)p-3<_*R&}_=d1`V=I+l0{>SyK#-s-P?C@Kyf>(V^>5cm@Cf$3L9y literal 831 zcmV-F1Hk-2RzV!i66Q?@1)0Qgz0bCIhLINRGPHY^< ziP!QYG!=&=MJ=d6g*b3QR4Ecy@@Pt$Ht7%GvU}kN^k;BlcHLCeL;{IO6VH3Tnc3aO z(`*svY`?Z=1XfTqjBIF^E0*tQuAj$&Uu)>P7HE%>rG#)vU_bG)cRz^Bpk_)Ods6M~qW z6O&q~TbN6UnV4-#3xhoNM&ecSj&6`XY18eP<0RlVM#8PMqGlvTm6SUVl;xGhg_WgD zN>P-@v7l+)@N=H!1{QYCbQ9?bvP-L^OTLjF*@y3d))CnyU0SDA#tgwaq%WBTkPHzx zHt7y&gZt4uqFc1ilpXM?0oHvmR)MR71E^bE1-TF~ZPFwMV6W5Hh?hKq937w`5(o1I4t2l7&;sS_(qDzV?dgSLE&o1pF-pl zX(9TCK_H#yiYIc9mI zz&6ZcgKkBc=nl`{fVd_&vC*)UWRHR26`H&{0&|-~>_f&EARR^7c6lT1Gcb(1P`S^V zK;$#&bH85H@@e%W`5KL?kH)RK!#2hTR0oUU`cnFzh&h%b!Y4Sy76Rast8(^6=An&oIxHq?zk z3d`DhUJE48C|ah4*PTj1Dp#`DlWZ{Puno!d7^gWb$i*Ip(K$Ajm?M1paZ!3)F4$OiPGH7?RBT3eJ=o zzAz-sWgm+O00000000A}R84QxFc3}lqku|9D?s8nH!gLORtUu2P*G_QP!JUo2vIr7 zBrzm*u$^6&6a5h!I2Qf`M-Ci0a^=P^VK&+9mQW!iqD0NRAjyv3NhrEh~ zs=fYNXKjU7HdFfS#Q|Z(*15JFY;CdN1`BQ-Zf%c(fL<>Mf@hsgt1+5Li_!`u=X1S# z?!JV(7-12jhV3A@4Ldv(5-splBgSAA7^_jHHbV*Yfu@9Dh?vqp-+eHUsHifaB)qP8 zF6iJxy$}{7%tA?D*v~_wY|5&DNt+V%EP!c{CRC|v;og^11 zFc&66-OgOSFR0L#+NYAX?+?0~9M-q8^^RIy>@O<|cT$wmbo5Ws8Nu$d{}1c_*MYlD z`#Z_|mCoCX@WuH{VR)!2%ZfQ4KgU!Uk|w2LbUK?Wm0W)*TGoh`EktYlxrEp$-7sFW rV@*QVM$AraM8={8IkwO?YouL=C1+9_j_G=||17@%SFM=R1qA>AD8No> literal 708 zcmV;#0z3UdRzVwm5fUOdR8+MGD2NIPgjB8V zvAtmL8t*zGoZ1iI$blQ>z==;l+_>-={Sqd2oPwzk5|+o=*`3`tZ{}@I;~>-FD|7M* zt+W}c6h&rJH_=n;s<+Z8QJ7R)b8;F*!ir~WU;FG5TRhHX=jv1XeL?ny>^<2JGUze( zj_eEBR-dswvhQRc*BHC*47Z%&LGTho>o}|7=H@1IHkh-{oNE-*yW#YiGuUzlqKc%h zz5YgLZ73?6>hj{nHOduR=hoOCjktfC`*#jU-xU`yt8RNLKBvfxAtk zJK+7Q%v#BRV}B`(2y|t6zU1R&m`Fn+Bp6Po^Q9)q_0HwV8+r1TJdL-!2aA=K9Tzn_ q-T?A8VsUD7Q+T){$5$%mjfm^8_(E!fDP4s2KjbH2LKCO&1ONcAMOW|u diff --git a/packages/metascraper/test/integration/qz/snapshots/index.js.md b/packages/metascraper/test/integration/qz/snapshots/index.js.md index c04abb22e..9113a4ff9 100644 --- a/packages/metascraper/test/integration/qz/snapshots/index.js.md +++ b/packages/metascraper/test/integration/qz/snapshots/index.js.md @@ -12,7 +12,7 @@ Generated by [AVA](https://avajs.dev). audio: null, author: null, date: null, - description: 'As tech giants in the US transition from disruptor to incumbent, a new generation of companies around the world are challenging their dominance–and changing the startup playbook along the way. From China’s internet giants to startups in Nigeria to policy debates in the EU, the next big battles in te…', + description: 'As tech giants in the US transition from disruptor to incumbent, a new generation of companies around the world are challenging their dominance–and changing the startup playbook along the way. From China’s internet giants to startups in Nigeria to policy debates in the EU, the next big battles in tech are happening outside the Bay Area.', image: 'https://cms.qz.com/wp-content/uploads/2020/12/beyond-s.jpg?quality=75&strip=all&w=1200&h=630&crop=1', lang: 'en', logo: 'https://cms.qz.com/wp-content/uploads/2020/04/qz-icon.jpg?quality=75&strip=all&w=180&h=180&crop=1', diff --git a/packages/metascraper/test/integration/qz/snapshots/index.js.snap b/packages/metascraper/test/integration/qz/snapshots/index.js.snap index 682151aa746af1e40897e3040a7052bb69612bbc..6dfbfc62330e99473d3495c65e2207ba7f0d4ea4 100644 GIT binary patch literal 651 zcmV;60(AXBRzVVp~0zy?QA#s`Y zPIuipwqtvnZcgnpAPyXhIC9`Uc#EER4944R4xvI~rEl%=Hy(d89$y@$QuAYX{tdnG z64S{{I0eQP+Pm|MECUZ8JDqlPBMM)9GroO5<0rx?;S1p>;bAL^eh_{U-nOG?LikSj zO}HDcZpN$c(<9_Qju+F7jg2T?kK(l`zC%8(dvQC8S2p7nC^MmJtG&L&twQMwZLcRg zq!q8H)-rV53gd-V^R?DNyyKWhUa(w%@{S3`e1U9#k9iBqiQvo*tsb*XI9nR8E%Tb( zcsWi{`7H)a;gsd5&_eC44;j~E14^J{V0EdoI_6Ycnb86=UVxOSa-s6T2+J}(777%{ z%d^iw{^YTsne$+MX_%2vrCJ{|ka|u{q3W|YLEfu^0$iSb4JmlE3Vo9j$(={2(|ad! zv;xAi(Nge=WtdXY7P-IP->OH2r=F!EXT(xdT=Ah)A%y~rK@}A0(mRo1y=50Fwqp_c z%hxH!kYi)5BlFIwliG2lPs4IU?x zSx*r6Pj%0OxbVML+$~e4Qn&)`qQyUybYZjQD%Ov)vF`8Ibzyr#hV$7$=&5RHOS`nP lnLlXqn&+g|qO?~bdM9;=Wck<=y58n3{sFasWNj-10049wH&g%s literal 629 zcmV-*0*d`XRzV4Ukc?17*N5m;+(?AkJ^e&>GPKEEH zICKtkh#!jx00000000A(Q^9T%F%VrRv=o(!R=|Bu5r-z5rW6oTgaE;@2vx0w#Kr5K z?7DSq$M!Z&PR)@s;=r*S5J!H3520Ve>^7T2h>%$6tv!C@@tYa@YLF-+&iw2f1{oA4 zqp9?oTc4ZYXIE*;1OL$c-HdKW<;OPI-4hx=5-tc|2tNrMjVSs=_(5njqv((@Bm5%V zXX`s`{atd3A~3d?Zf|c#Y%5}$5xYk|jR&k5v9%qx#*0*%%4%*caqGMYxpAw>Tcj0N zQ=2Jz;iL`H==oY>pS|=DP~?zFu7d}uA>;_hM-Uv>UY5=3@#j1@4>c41{ncCq0A+P&59!=YlxPPj9R*EbCE5+ThMWUq7(Jk)p z`+~YLU9MvF@@nhhtEw(=BvpAnoRk-4vb3dHI91Od)p^ZxGI~+kn-J~uDnz_|?72*_ PerSIHVx<*z2m}BC71=Ss diff --git a/packages/metascraper/test/integration/reactpodcast/snapshots/index.js.md b/packages/metascraper/test/integration/reactpodcast/snapshots/index.js.md index 8f11d7f11..a0a703be9 100644 --- a/packages/metascraper/test/integration/reactpodcast/snapshots/index.js.md +++ b/packages/metascraper/test/integration/reactpodcast/snapshots/index.js.md @@ -12,7 +12,7 @@ Generated by [AVA](https://avajs.dev). audio: 'https://cdn.simplecast.com/audio/bdb43d4d-bd1d-4fbc-bd60-40f1e3299aa3/episodes/48e2fc0d-0af2-468c-9eaf-e6ba4d4f852e/audio/2f892c8b-ecc9-4905-ae9d-4283ffb1054e/default_tc.mp3', author: null, description: `Tom Preston-Werner is building a full-stack framework for React and GraphQL developers.␊ - In this episode we talk about RedwoodJS, a framework that’s bringing full-stack to Jamstack. Tom is a co-founder of GitHub, creator of Jekyll (the OG static site generator), TOML, and Semantic Versioning. If yo…`, + In this episode we talk about RedwoodJS, a framework that’s bringing full-stack to Jamstack. Tom is a co-founder of GitHub, creator of Jekyll (the OG static site generator), TOML, and Semantic Versioning. If you’ve been hunting for a full-stack React and GraphQL solution, and envy the integration of frameworks like Rails and Laravel, listen up, because RedwoodJS might just be for for you.`, image: null, lang: 'en', logo: 'https://image.simplecastcdn.com/images/7672009f-32a0-470f-81b8-77a9748d560e/82cc2a41-1a7b-4c91-b6f0-a461c50830ed/simplecast-logo-32.jpg', diff --git a/packages/metascraper/test/integration/reactpodcast/snapshots/index.js.snap b/packages/metascraper/test/integration/reactpodcast/snapshots/index.js.snap index 7455bc33f2a5d4c167ec93111c552c0bee915579..a3b468caaba785e80819d33e357ce47f893aa228 100644 GIT binary patch literal 843 zcmV-R1GM}>RzVL7W5IkZ3nELT6P-Ia37$+h9ai4*ka zR8Zt_MXw|ZB4xus4-HVD&(LFf43L*fk9~=ZWbfMD1Qjq4$r;Y~%|{O3sk}5|W#9gd zPP-Dz7P)YZk%C*NZOt277-!$Ulaf3B%kKS=ci-zj|11B|8U24I`^NXY7i32x&qK05 z$e!IJAK81df61QsdyoCS)BGHT^Zm{6;NZaX_dWli=YLHxJ5T+Q=kGrDcX=nZxtZ;J z@CxS|`#cDQtS44iO^H3hi7-_#LFi}5CLtkNtNY0glHj3rq(V;nPrh|{T3c@)kP z3?wSvmF`z3CRH=ts%4LNt}yK|9qn&99}ykV>c(kPugm?%e`6|m*`jr(W@sgUg4!_X=GYB>(38(E#a``P4VgkBwk=?8f@+4;ZY5)piDPH zz$Jp?u#1}bBL>94pu0qC>c_e0GIt@_?C{9ndV*Ou$?w`+~=zIKB+n-_u* Vw<%p{iRR{nJ^|o*a78!;000C!rCI<0 literal 760 zcmVTk7idx!=pA*`j z*?1e#A zbqZ+-gy}+YMk+0a zpH`xEQEfU7<9WZ5S&>3Ru+LQHw3!a&G#K!JW6C{_13{VbMlKFq;laRhMHTb0gZ}4xSYlU`5*7|+a&^FZxVhRgY z=iKmC0&PkCs-``}jJULFmv&%smZs>rP5|v~A+ujghAOE6jls0rto-)zPF3xXm9o`3Op~|M0W^Go@{}8D(b)BRjJA5 z*)WR9svnC800000000AhR>6`S#SxuBAdm%N5fFiob?|YjXLeV+LedEqtt}$34l9Vj z;6qJ!c6Tw=RYg_x^o~yAAM6M_!ajh%fN$U@IO_v^_suV>dlqSe@W%G;bWd01%a<=- z*7x<=xN;M}`+<^9hK8uDtb?+pj-``j8=TdpAswyqv2`ha_kC5Vq`tiU*Bi4pXZ$mN zYyS2Z`2RJoD_sA^^)s%&-I~q*gX`9BW;2cJ2VDQfb#;3-dvAX8-TBQY>u;z`^ZE71 zJ9qBP=I_krw`cR;;+@ytpWm3x-*|WahUzQr^4*Ph4!*mo`qa9xzkT~$1!s0vTq<21 zy!twj)Bfgn$E%|=xwAKOZc*T~RE9_DMTCJ$vo%Z+%r1#b1O@ zFP{G+3ae5dlo82^)M~rIUzGsBii=;__rLvVQU8ij$5^5@pU;)OfoNgnOf6B*f|Pg$uFOorwz@~XNIXSx;#%#- z4_L4-f{tRX$_%ZW&y~Uc7_BQ zv`cPIku;!!gc7=kW{`a67)H$O(iTa@OqOwti(J~$1@Hwjt~?X6 zCD8=VO4i0%2IU{6eFUr z)$p;0qojg!T^#$7SE~~8?;QJpsN6HMnGa9SV;iQ6cZ?FHPC;o4OxOq#RQ0I0R~5($ zN|3JB%qCO*Fu$e5S~sA34f*8I5ugaXxqgi}Ri9Au_|hicdD(jbgY_}H2!SCK67rgA z2fkGt1s;fnodZ+DB~q2xSeNz6z*|nuLB`l_;AeF$T2!qzR5gatPdiIEn{Mn>imcFD zhhHMI^ad0l4JwuGBI6id4FDKBPt zY8{>FQGzw+IiLd{BONxbyx(Xn2+-{y7(`vXc>XUD;pgJ>PW|+wVmERTrr|mWb+-`b zTxzt!Bim?86tY_&Web@ME^Ihy$DSF>-gs_)Y4nC8b$+Z6p0O6}=qg|g78@wH2XUhC z<(QbfTmz)WUR)7*ZU%~zu{p2HDDu`5HZE^BxxyM|Y$-;lh)n^nE(E#@%1(&N7+JoC zJG)00p$eV?O9ha4=0Zj#rbR-+s&kwYyI;)ge%x!5w^;Yjp5+yA9#GGA3as44V(0oW z63X15M~&gl@pbxz;g1YmDRIFgzic}N*yoR)8Dy~~XWW?ay8J&bZ)*uB`R;VvUXP>^og z(Wapt7&DiP2b1=>fRi;0q^5a=CE!szh*zf;GY*R}vDw~gZFxR(LnrpbM)L^bj?|Wm zQqtIR)3k!<7&G)fI9Wlq0V}fOvBo>3jl;Au84#*s*SS1$nomJO}M;_%?4JJnntc^s(ykJzbujERRl>_dmRMc64^OJYC`t@|f2b-}vV6D23tG{Q80Hb)GZ( zoAc|CLlNui^JEUJJX}{M*O#r-U_~C?y?ccV;vjAxw0Ko`dl>qbhl}cn;_jb(@XApO zv`=Q%K3jhFf!ebo( literal 717 zcmV;;0y6zURzVhEEFq?EEx^X}Ll&o?uluSY|v*~DFa=U#Zpr;aKz zvQ#nQm?o^SS_vk(aEcmNXz#AB^PGD6zL_KA$}l!BU&p_^ab$~ zvD%2DXNa$eon{n0ir2Q|wKu~P&U_p%f48=_qIffk*Q59$?pfK18&SNv9k0@m3q7|Q zo3*ty8hoK`Wp4DT)$&5YfQr1fwTaAmWjtwTtscp`q`mjH)jrBHe3LB8KGdAnbMBZG z#tW@(=T^G$$0SKUgYY+(-yA6FgQXI@244s@!I63-py0SFPNf5V&MmY$yGRS%S)i7~h;t7@0R>~lDTjf6MFD$AOMd9D zgUkUfbmTK8gA?amUX;{=Aynmr=~JP`;CUIxQ|p6q2`uuVQo=;29P|kIUkqJIjQau) z#o+>zK_-$0#ftJQ3Z62|-3B%RJ>P@5&OE%(dMx=a@=-UJzv@jDr*yn*$J4@lbCjmj zX(uUi6=n$%O$|y;yR^HP?sd{uCp|pa@3nfpbT7pMy)6Bc6Em*2SyDCrw^*7|k9B4A zmm#N#8!fdy4@`}boOm5rK?Ku^w7T6Hf?!2(-Dt=2#Hf1c2PO=qa9F5n=J6dFK);Go zFUI`(Ro3CHO4wW#WxEH**pm^r4n~%9V3In=(ZFioX;kglMzFH_Xa7leh&oZ+xfJzK zPNoY2WI=!kMFz)YL4cG5$Snba1jv4;bI?A_5>uFZR_7w;)xG@#>+H;}Yy_P00000000AhQ_XJEKoIuEZ2*<3so;RbWgeg#yFuw8mAF*m2ogj{MO-%a z#@=SVYweEH=GHz02TrIQcnBT=iI?b&w_xnVIambCU*etF`SzQiy`RstO&0#{yF`Ur zT3;wcY4}26l1rn!5v9*9`n&ry6(}ylKVk4Fs2}#2J^e`kp9wdFFN9wN-V1_ngr9`H zFbKv3L-9RFJ>&71kIts2qe&doJB;J_Qzz&kl|FH*L}ks!)_ct^s-!Ar(!r(8 zDu?i1C=~EPXpzD+S7rfr4wx$s!b8$-cFnG9g*o{ol+Kpc)x;i@SxSd81O+lP`1t^o;s6^>_?Ql)h8!|ji5LscQNZDXc6VmXPT&CqRTZb-VK>yjtdkP)M*)K;WEYD>h| z)!>b2-YDU(;`nAnUA-!^?j&eovK>RBZD!jA->sz;Fc(WjqK5R-VR}+lGp#&TwzV8> zcwj@+twVF$+SSYL*lZfTo}MPPPGDF$-F{!}mQ1%gi|VnD;_?3q7j<>jjcYI5U$oH{ Ie;ot>01p5tH~;_u literal 616 zcmV-u0+;H7c@Enp*+UO}_r|C%m> z?KV3Mt{;mC00000000AhQ@w7~KoIuEz7eRqUGbKfQ_8m%!OBsn0B#4lLX!h(m zdvohuYj>PWy5tp*C@4cg$2(B-3{-guTE@Qf6&Atrcjuki`SzQiy`9grO&9*=8 zSod$|1J;V&;`t;QA4SPwG&wpQPo_!2?a;Fr=-|xe zwIg^Z6-jt6wannOP-X#k4pb-)(nH#9cI~dEqJn)0m9v#~4Y3DhF3=HX5JezCTWScp zzymh!$qejVBi z)~#M_CS~2*)xfl=^#a4%>F)dFe#v~1^SGJxI63@Z;o`oo3zcDa$NmB`sDV!q1ONcF CX(TrQ diff --git a/packages/metascraper/test/integration/substack/snapshots/index.js.md b/packages/metascraper/test/integration/substack/snapshots/index.js.md index 981893db7..a6d5a7e8a 100644 --- a/packages/metascraper/test/integration/substack/snapshots/index.js.md +++ b/packages/metascraper/test/integration/substack/snapshots/index.js.md @@ -11,7 +11,7 @@ Generated by [AVA](https://avajs.dev). { audio: null, author: 'Simon Sarris', - description: 'The world is a very malleable place. When I read biographies, early lives leap out the most. Leonardo da Vinci was a studio apprentice to Verrocchio at 14. Walt Disney took on a number of jobs, chiefly delivering papers, from 11 years old. Vladimir Nabokov published his first book (a collection of p…', + description: 'The world is a very malleable place. When I read biographies, early lives leap out the most. Leonardo da Vinci was a studio apprentice to Verrocchio at 14. Walt Disney took on a number of jobs, chiefly delivering papers, from 11 years old. Vladimir Nabokov published his first book (a collection of poems) at 16, while still in school. Andrew Carnegie', image: 'https://cdn.substack.com/image/fetch/w_1200,c_limit,f_jpg,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef3bd0df-b9fa-4358-afee-116c23f4c55f_2560x1902.jpeg', lang: null, logo: 'https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1115e358-65d9-4f1c-872a-f1ea44965132/apple-touch-icon-1024x1024.png', diff --git a/packages/metascraper/test/integration/substack/snapshots/index.js.snap b/packages/metascraper/test/integration/substack/snapshots/index.js.snap index 8adb9807fffa662a4293421909a6eab4f2d34cff..ec2c01bef3d23e2b3c557def117e33c6c9560ca4 100644 GIT binary patch literal 860 zcmV-i1Ec&wRzVmrg2VqiRJ~pax$zb4Pd3aT@cr>1XCqR^)^-7F#!*bdEQ(g7dS5^JGER^P3_v%md z(krZ8S2)l3R=SoMS8MNHy%vIb_RI92N$^h4KjFLKgQxWWnZ%R)LGsB_5M+}exFVTO zgWwC2-$?!<`6xVj6rTK0+#vU1ct1QnJq^N#LHK?Uen>h;kHbk29zP0?Stq0(W|M~p zdnc^(wYKB*gJ-hQEj(k^N_U|8K%nDR8ZUKww|2A%f2t97+A0Ck0fSq#duW(a$O?sE z6yq4f^BP?Ud0)@t)?V18D=n`&pK^W)+ zmV`oJkHgBg0>cbi+A6JXAWdOUI2~vuVz^dJ$VOWDo)vnlZ^3khlCDMpH8D_1>pT>_ zv(FfCO+@gXu-=`~*tpLJaH|>YYDok+FO>q>g5$N;Du&BeSlq#v%(hrbJWQo*ScN0| ze+RYq#$6-{7i~ONTFiBm40=h4p4Z84lV^vVuX3@DmSxJL^RtXa zWr}RMT(9zUktI~63L~#OUPqGaHcIE&@@4;tO?w#8dt*7>x8%othh0%?P<35VS5T!s zXCCcgWenHNIQw)sMB4D9MJ{#c;3+!YS!xxsb6H`__XidxomJ!bn~^Wq-v@5E4*pwU mCZRTs`ZkTsor}ocxrn5T*xOtj-%5ewP4q7opEqAC1pojGj-|%{ literal 836 zcmV-K1H1e|RzVMBb&vo(6_`T<^srp5w36-hEkMzrK+_aS z;IyX&MUEtTDUl^9JKIz97(Erqp%2gp>8Vf9Cn(St=xAdZ=pwfW8fi!l=jY=$d|j2= zh_!$927?M38{d~caIsdte^@lh0i9L1lK&EEZZ62%91;{)DH zWwxWq(azc-??YqUIQ-<9YE1{vxO2+ynBI}-g;O>t)7{MNCGqnH;o3MYL3!YCg>C~a z*BW`L5v=9{XYiuI4!!}0TtcZ#?YM0e`Y9lHdIMTrp$FPx!Sn$FxonLOGx!!w$DK4F zIb5htD7fZB6d#6)fLrUZ3rZja0~hF=5uzCu0;D;GksW6Bp zxn8B&d_EN`O^JkQwYs$R^rsb_q&csRk<&`AtRs}sd#dQ%2Sl4}T|Zbne2{%jZ`q4A z(!66hFUnG!<*ej=-l0&Y_wW?G z=^as@{5-6&6Pq0mliul3e>CFdhyM24_WnP?Y(j0vhPGq&CIoXgA(--vzbnMSm6AB# OEdK#o!>!2s1ONckoSM%7 diff --git a/packages/metascraper/test/integration/the-boston-globe/snapshots/index.js.md b/packages/metascraper/test/integration/the-boston-globe/snapshots/index.js.md index d05e8ffee..05fff416e 100644 --- a/packages/metascraper/test/integration/the-boston-globe/snapshots/index.js.md +++ b/packages/metascraper/test/integration/the-boston-globe/snapshots/index.js.md @@ -12,7 +12,7 @@ Generated by [AVA](https://avajs.dev). audio: null, author: 'Mike Isaac', date: '2016-05-03T18:58:00.000Z', - description: 'Ellen Pao spent the last few years spotlighting the technology industry’s lack of diversity, in court and beyond. Erica Baker caused a stir at Google when she started a spreadsheet last year for employees to share their salaries, highlighting the pay disparities between those of diff…', + description: 'Ellen Pao spent the last few years spotlighting the technology industry’s lack of diversity, in court and beyond. Erica Baker caused a stir at Google when she started a spreadsheet last year for employees to share their salaries, highlighting the pay disparities between those of different genders doing the same job.', image: 'http://c.o0bg.com/rf/image_585w/Boston/2011-2020/2016/05/04/BostonGlobe.com/Business/Images/TECH_WOMEN_INCLUSION-6183.JPG', lang: 'en', logo: 'https://c.o0bg.com/rw/SysConfig/WebPortal/BostonGlobe/Framework/images/bookmark-114.png', diff --git a/packages/metascraper/test/integration/the-boston-globe/snapshots/index.js.snap b/packages/metascraper/test/integration/the-boston-globe/snapshots/index.js.snap index 0f169f51a2f0baac4880e82a99916405bfaa3c6d..903b1ae1ce2e5a4ab38207f6274e9f644cebdc34 100644 GIT binary patch literal 817 zcmV-11J3+GRzVSIlpF%AaUEy=Kf?UVz_8EJ{sp;}( z0xCZMti4ydxWKz=CBE2jL2AH~=T$2$W~y0gR=RU9KwEt9q|}o`gzABYXA*P@;kY zGw?!fQRiN&bO_SsqOh4pdv+ej0>!JvZyo2dQ(x{C_r?plzacv%J16@=wzc3m-^qTF z#U01_MCL9!&R4SA?$V08bQHdY2wivnxV*gVxHld5y5ruWoP|4X$8j&MxR=BvmU`-S zZnk1eVuG1AjeG4tj)3i3A);2|BH@O{xw{&4H@u+d1#5%u=2mZWD+v4`2wt~}uE$^_ zBMX!|zj(Ls!0jsqIXf1b*#dH8v@WKEMV3IxDiFp}K%#YW>LH)GBgB}moFJim3WT%ze6DxDDmhac~ zmJj+ndnd!AgZ|;k{^8Ek=g;THc(<(=CGxa!79jsGtW(`M!y2@0p)UEe z%I@eqktrWSc&rTy^*2QR*w9K!ZAP>CEDyCFjfEL`-R`M~Dv-q{tp=(K3$>h{IVsHtpBy z)tMO89FdPsvyieZ{n?)+owE`)tjw8P<7Exas}G465-txfaCumR^5&<*6E!9;t1Sf3?2Hshg?%49BXyj`uQ#=0EZq3ub$D^#lL_psJ6o literal 802 zcmV+-1Ks>VRzVFPSK8H|K9+_ z+h3SAf**?r00000000AJRLySFKoGW@w)|GKf&&K*%N=K(wy8>Qw4^_X{zwD@2&r1z zV|&TQYj!6X-`Y#xfnz!F0=x+a9spj1aZ(2`mPX$3%zD0=@7ukM1Es^EJ^unIQ9+I= zc!9R4GcQp(0BJLk+f<`HzlO@3V9s&Ak$orI zZ8=Us_KWOd-f`}_i!1Kpaqu2Oblur4Ko_MXL zMr=`xG1aDaZyw4aumdYZ*hriw+)z9BSN+b0=XX7St>4+)>TYiNe%tr`w~bA=BCw&6 zIZB;feVcpe_LPE*oe0fr4jD2U7gNF_i=kj82xBRrQOP7lnI)4rLYQV+>7-;bi^djB z`Sa|vrG4R$>6k_GBN!{Od_-{;>ajs4vWNvx>MUxro{^zo+hPcYg<@ zn#e^-Ky6NOqznRw1yD_5z{0ePIR1I|waK3xiDWkWGDXa{I1k&}50ZAMN8H4Gl5*PJ z>=t}`qC8F%b-Y!7)vs0?-0yOK{VKLsiE^@Ydu(L}*7AdDzvcbj&i?7(_^@|$dT_M! z{N;;-<0EgQv$@uOcCy!0gc4a&J9Ciz7uJccok0cKHc%J*MQL|*7R!VWAUM$mh58#J z-!)xi^)Yl0Rcc!AbZz{Dt{Ufy}F;Zlo)MlB-`b6=x9Glc@)M|~5st>`1QxBvliuUxb zNM@`AH7hgb)_74t^QvRu1%%7PD_kB{puCy>JyBuu(h3tF4W2(fLFlMYYwP>34?nz4 gdvDhFIaM=dJH?S|j^m?@puQ=718D+u>DL4R0QU}nw*UYD