January 6, 2017

When Audrey filled out this survey, which she got from Jamie, I knew I had to take a stab at it myself. I always see bloggers filling out these kind of year-end book surveys but I never found one I wanted to fill out. I liked these questions and enjoyed reading Audrey’s post. I also wanted to recap my year of reading, so here it goes, a brief summary of 2016 in books!

finding-ithaka-1-of-1

Note: I tried to only use a book once in the answers. So, if a book could have been the winner for two categories, I only used it for one and just moved onto my next favorite for the other category. There were a few exceptions but I tried to stick to this rule.

 

Number Of Books You Read: 60
Number of Re-Reads: 2
Genre You Read The Most From: I didn’t feel like going through an tallying them all up but I read a lot of literary fiction and science fiction.

 

best-YA-books-2014

1. Best Book You Read In 2016?
(If you have to cheat — you can break it down by genre if you want or 2013 release vs. backlist)

I can’t pick one favorite since they are all so different. I loved a lot of books in different ways for different reasons, and I think that the rest of the questions kind of show what I mean.

2. Book You Were Excited About & Thought You Were Going To Love More But Didn’t?

Matched by Ally Conde.

 3. Most surprising (in a good way or bad way) book you read?  

The Woman in Cabin 10 by Ruth Ware. This was the most surprising book because I felt like it was not as huge of a hit as You or Gone Girl, but it was just as well written, just as suspenseful, just as shocking. But I didn’t hear a lot of people talking about it. I was surprised by how much I enjoyed this book.

 4. Book You “Pushed” The Most People To Read (And They Did)?

Homegoing by Yaa Gysai. I made my entire book club read it. We try not to read books that someone has already read, but I pushed this book because I think it was the most important book I read in 2016. I gave out a couple of copies as Christmas presents, too.

 5. Best series you started in 2016? Best Sequel of 2016? Best Series Ender of 2016?

I didn’t read a lot of series in 2016. Oryx and Crake by Margaret Atwood was a beautiful book. For Christmas, my parents gave me the next two books in the trilogy, so I’m excited to read those.

 6. Favorite new author you discovered in 2016?

Neil Gaiman. I read 5 of his books this year. I had never read anything by him before this year.

7. Best book from a genre you don’t typically read/was out of your comfort zone?

I never used to read thrillers, but I got really into them this year. I loved Gone Girl by Gillian Flynn. I know I’m late to the party but like I said, I never used to read thrillers! I loved Gone Girl because the perspectives from each partner was so interesting to me. I also thought that the book was smart and well written. Rarely do I stay up late reading but I stayed up all night to finish this book when I was home over the holidays.

 8. Most action-packed/thrilling/unputdownable book of the year?

Lexicon by Max Barry. OMG READ IT.

 9. Book You Read In 2016 That You Are Most Likely To Re-Read Next Year?

I don’t see myself re-reading anything I read in 2016 so soon.

10. Favorite cover of a book you read in 2016?

book-1-of-1

This was also one of my favorite books I read this year. I love the quote on the cover: “A novel about the truths – some wonderful, some terrible – that children know and adults do not.” – Time Magazine.

11. Most memorable character of 2016?

Precious Jones from Push by Sapphire

 12. Most beautifully written book read in 2016?

American Gods by Neil Gaiman

(This is probably the hardest question for me to answer. The Girls by Emma Cline, An Untamed State by Roxane Gay, and Homegoing by Yaa Gyasi are all up there as far as most beautifully written but they all won other categories.)

13. Most Thought-Provoking/ Life-Changing Book of 2016?

On Writing by Stephen King changed the way I think about writing and the way I write, so in that way it was the most life-changing book I read in 2016.

Most thought-provoking was An Untamed State by Roxane Gay

 14. Book you can’t believe you waited UNTIL 2016 to finally read? 

Fahrenheit 451 by Ray Bradbury. What a brilliant novel.

 15. Favorite Passage/Quote From A Book You Read In 2016? 

This is pretty much an impossible question, but I will go for it. Sometimes when I really like a quote from a book, I Instagram it. I try not to do that too much because I’m not sure how interesting that is to other people. So I just looked through the quotes that I thought were worthy of Instagram this year. One that I love is:

“Somehow she knew that you didn’t get many moments like this in your life: moments when you knew, without any doubt, that you were alive, when you felt the air in your lungs and the wet grass beneath your feet and the cotton on your skin; moments when you were completely in the present, when neither the past nor the future mattered. She tried to slow her breathing, hoping somehow to make this moment last.” – Neil Gaiman, Stardust

16. Shortest & Longest Book You Read In 2016?

Shortest book: Fantastic Beasts and Where to Find Them by J.K. Rowling (59 pages)

Longest book: The Children’s Book by AS Byatt (675 pages)

How I did this: I went to https://www.goodreads.com/user/year_in_books/2016/. It tells you a few stats about the books you read in 2016, including the shortest and longest book you read. You can click here to get your own Goodreads stats.

 17. Book That Shocked You The Most
(Because of a plot twist, character death, left you hanging with your mouth wide open, etc.)

We Need to Talk about Kevin by Lionel Shriver. I’ve never read anything like it.

18. OTP OF THE YEAR (you will go down with this ship!)
(OTP = one true pairing if you aren’t familiar)

I have no idea what this means.

19. Favorite Non-Romantic Relationship Of The Year

Sisters Vianne and Isabelle in The Nightingale by Kristin Hannah.

20. Favorite Book You Read in 2016 From An Author You’ve Read Previously

A Fighting Chance by Elizabeth Warren

21. Best Book You Read In 2016 That You Read Based SOLELY On A Recommendation From Somebody Else/Peer Pressure:

The Perks of Being a Wallflower by Stephen Chbosky. Adored this book.

22. Newest fictional crush from a book you read in 2016?

Can I have a crush on an author instead? Neil Gaiman (blushes)

23. Best 2016 debut you read?

The Girls by Emma Cline

24. Best Worldbuilding/Most Vivid Setting You Read This Year?

Feed by MT Andersen. He drops you right into the world he has created, but also explains it perfectly. Fun, crazy world to discover coupled with a beautiful, heart-wrenching, thought-provoking story makes Feed one of the best books I ever read.

25. Book That Put A Smile On Your Face/Was The Most FUN To Read?

Stardust by Neil Gaiman. If you are a fan of fairy tales and fantasy it’s a great, fun read.

26. Book That Made You Cry Or Nearly Cry in 2016?

Anne Frank: The Diary of a Young Girl by Anne Frank.

27. Hidden Gem Of The Year?

I’m basing this question on books that came out in 2016. But my answer would have been the same even if I considered all of the books I read this year:

We Are The Ants by Shaun David Hutchinson. I can’t explain how much I loved this book, how beautifully written it is, how real it is. I highly recommend it and I’m surprised it hasn’t gotten more popular.

28. Book That Crushed Your Soul?

The Circle by Dave Eggers. And I mean that in the best way possible. I recommend this book to everyone.

29. Most Unique Book You Read In 2016?

Hyperbole and a Half by Allie Brosh

30. Book That Made You The Most Mad (doesn’t necessarily mean you didn’t like it)?

Missoula: Rape and the Justice System in a College Town by Jon Krakauer. Still mad.

 

book-blogging

1. New favorite book blog you discovered in 2016?

Since Christy and I started the Beyond Words Bloggers Book Club, I connected with a lot of book bloggers or bloggers who write about books a lot. Mandy from Addicted to Media is probably my favorite. We have similar tastes in books. She writes reviews that make me go out and immediately get the book she is talking about. We Are The Ants by Shaun David Hutchinson and Salt to the Seaby Ruta Sepetys are two that come to mind that I read pretty much immediately after reading her recommendation.

Audrey also writes a lot about books and I love reading her entire blog and all of her book reviews. It’s hard for me to pick a favorite but these two are the first to come to mind.

2. Favorite review that you wrote in 2016?

I tend to lump all my book reviews into one monthly post, but this post about my favorite dystopian books was the most fun to write. I need to update it now though to add my new favorites!

3. Best discussion/non-review post you had on your blog?

I’m not sure exactly what this question means, but I am proud of What Does It Mean to Be Fearless?

4. Best event that you participated in (author signings, festivals, virtual events, memes, etc.)?

Going to Harry Potter World and seeing my favorite books that I grew up with come to life, basically seeing my entire childhood come to life and re-living that magic.

5. Best moment of bookish/blogging life in 2016?

This has nothing to do with me being a blogger, but after I lost all of my books in our move to Connecticut, my friends and family rallied together to get my an Amazon gift card to buy new books. I can’t even tell you how much that meant to me.

6. Most challenging thing about blogging or your reading life this year?

This year I tried to shift from a more diary-type of blog to writing about important stories and topics that matter to me. That meant less posts about travel and more personal posts about my life as a military spouse. It is hard to open yourself up in such a public way but these posts have been more fulfilling for me to write. They have been cathartic for me and have helped me learn so much about myself.

I’ve been connecting with so many more bloggers since I started writing this way. I’m really glad I made the switch and made myself a bit more vulnerable on my blog.

7. Most Popular Post This Year On Your Blog (whether it be by comments or views)?

My most viewed blog post in 2016 was Yup, I Signed Up for This.

8. Post You Wished Got A Little More Love?

Dear Military Spouse: You Do You.

9. Best bookish discover (book related sites, book stores, etc.)?

I am currently wearing a Harry Potter headband I bought from this Etsy shop. Such a fun store.

When we were in California visiting Nick’s family, Nick and I stumbled across a bookstore called Green Apple Books in San Francisco. We must have spent two hours in there and bought so many used books. I wasn’t even sure we would have room for all of them in our suitcases. It was a great bookstore.

10.  Did you complete any reading challenges or goals that you had set for yourself at the beginning of this year?

In the beginning of the year, I challenged myself to read 55 books. Later, I raised to 60. I’m glad that I set this challenge for myself because it made me choose to read books instead of watching TV. I kind of have mixed feelings about reading challenges, because you can read a book that is 800 pages and a book that is 100 pages and they count the same. But overall, I like having a personal reading challenge.

Back when I first started this blog I had the goal of reading all of the books on Amazon’s list of 100 Books to Read in a Lifetime. Since then, I’ve read 30 out of 100. I still have this goal but I’m not solely reading books from this list anymore, just when I feel like it.

looking-ahead-books-2015

1. One Book You Didn’t Get To In 2015 But Will Be Your Number 1 Priority in 2017?

Dangerous Women, edited by George RR Martin. It is a book of short stories all centered on the theme of dangerous women. Perfect. George RR Martin wrote the very last short story, which place in the Game of Thrones universe.

Nick gave this book to me for my birthday in May but I never got around to read it. It’s 800 pages long and I never really felt like I was in the mood to commit. I just started it so I will make sure to finish it this year!

2. Book You Are Most Anticipating For 2017 (non-debut)?

Difficult Women by Roxane Gay

3. 2017 Debut You Are Most Anticipating?

I can’t think of any. I don’t pay attention to the books that are coming out as much as I should.

4. Series Ending/A Sequel You Are Most Anticipating in 2017?

How about we get the next Game of Thrones book?!? A girl can dream.

5. One Thing You Hope To Accomplish Or Do In Your Reading/Blogging Life In 2017?

Read as many different kinds of books that I can. I especially want to challenge myself to read things that I normally wouldn’t read.

6. A 2017 Release You’ve Already Read & Recommend To Everyone:

I’m not that on the ball!

 

What are some of your favorite books you read in 2016?! What do you think of my picks?

 

Thanks Jamie for such a fun survey!

carolann signature (1 of 1)

26 responses to “End of the year (book) review – 2016”

  1. Audrey says:

    I’m so glad you decided to fill this out! I like that you pulled Jamie’s questions so you had more to answer! (I skimmed it down, lol.)
    I’m glad to hear you liked The Woman in Cabin 10 so much- I’m going to read it for the challenge I’m doing and I don’t typically read those kinds of books (thrillers). I have Gaiman’s Coraline on my bedside table that I want to read!
    *OTP essentially means favorite couple. Haha!

    I can’t believe you said me under the book bloggers. I try to read often but I know I fall short compared to other bloggers. That means a lot 🙂 You’re so sweet!

    I love that your family got you an Amazon card to restock your books. That’s seriously the nicest thing!

    • Carolann says:

      I loved this survey! It was so much fun. I think I initially took if from Jamie’s site because she had all the answers blank and then I saw that you had taken out some questions. I love your blog and you are very bookish so you were one of the first people who came to mind!

      The Woman in Cabin 10 did take me a long time to really get into. I think she spent a little too much time setting up the story and it wasn’t all necessary. But if you can stick with it, it’s a great thriller. I kept going because I knew that it was going to get juicy and twisty, so I just hoped it would get better. I am also just realizing that Coraline didn’t make it into my survey! It was a very fun and cute book. You can read it in one sitting and I think you will like it. There are some really smart quotes in there that I love. I think that children’s books are so great and so wise especially when someone like Neil Gaiman writes them!

  2. Carly says:

    So much book goodness in this post! I haven’t read You yet, but I definitely liked Woman in Cabin 10 more than Gone Girl. I haven’t read anything by Neil Gaiman, but I know a few bloggers who love him so I definitely want to read something from him this year. I haven’t heard of Lexicon, but am totally intrigued now– I don’t usually gravitate towards sci-fi, but do you think I’d still like it? Love your favorite bookish moment/the giftcard after your lost books!

    • Carolann says:

      I have a friend who doesn’t like sci-fi at all, but I loaned her Lexicon and she loved it! She gave it 5 stars! If you check it out I really want to know what you think. There is not too much sci-fi. Although there is some, it’s more of a thriller type novel. I realized that while I do like sci-fi, I have a limit on how much I can handle. I just read a book that was just too much and I kind of hated it. Like, there were entire paragraphs where I had no idea what was being said because it was just all made up stuff that you were supposed to try to figure out.

      Neil Gaiman clearly became one of my favorites this year. I loved American Gods and The Ocean at the End of the Lane.

  3. Sarah says:

    Ok now you’ve inspired me to read Homegoing! I’ll have to go to Waterstones on Sunday and hunt it down. I’m going to try my best to read more this year! I just finished Commonwealth by Ann Patchett… if you haven’t read it yet I 100% recommend!! (Not that you seem to need more books to read haha)

    • Carolann says:

      I always need more books to add to my list! I got so many books for Christmas it’s kind of ridiculous, but I’m always adding to my to-read list. I think that you would love Homegoing!
      I love Ann Patchett. I read Truth and Beauty years ago and I loved it so much. After that I read Bel Canto which I wasn’t a huge fan of but now I want to check out Commonwealth.

      • Sarah says:

        I wasn’t a huge fan of Bel Canto either, but it was the book for the literary festival hosted by a literary magazine I used to work for. Ann came as the keynote speaker (and spoke on my 21st birthday, so obviously I had to attend, but also be tipsy on margaritas haha) and her wisdom is totally astounding. Both in person and on paper! Such a witty, wonderful presence. I heard an interview with her and Commonwealth is her most personal book she’s written as she takes a lot of it from growing up in a divorced family (and the book itself has themes of writers stealing from real lives)… I hope you get a chance to read it!

        • Carolann says:

          Wow! She sounds incredible. I just requested Commonwealth from the library. I can’t wait to read it now. I think it’s so amazing that you got to meet her. You are also making me want to re-read Truth and Beauty, which I feel like also gives you insight into who she is. Have you read that one?

  4. I’ve so loved doing our book club this year, and I can’t wait to see what books we read in 2017! This survey was so much fun to read, and pretty much it’s made it very apparent to me that I need to a Neil Gaiman book to my 2017 list and read one of his books soon! I also pretty much recommend Homegoing to everybody I knew, and I’m so thankful that we picked it for our book club one month. My fingers are also crossed for another GOT book, but I just feel like George RR Martin is going to string us along for another few years before we get the next book which totally sucks!

    • Carolann says:

      Every so often I do some googling to find out when George RR Martin thinks he’s going to publish the next GOT book and I am always disappointed!! I’ve heard that the show has overtaken the books, but I haven’t seen those episodes and I’m trying to remain spoiler-free for as long as possible. I’m excited for our book club this year! It’s so much fun.

  5. Sophie says:

    Love this post. I need to read The Woman in Cabin 10 after this – sounds intriguing! And I have only ever heard good things about Neil Gaiman – maybe 2017 should be the year I start reading his work?
    My flatmate and I started the Amazon 100 Books to Read in a Lifetime challenge this year too! We’re not making much progress but it’s lots of fun getting in all these classic books we haven’t yet read!
    And you’re doing really well on 60 books – I’m still trying to hit 52 in a year! Maybe this year…

    • Carolann says:

      If you’re interested in reading Neil Gaiman I always tell people to start with The Ocean at the End of the Lane, if you like young adult books, or American Gods. I also loved this book called Good Omens which he wrote with Terry Pratchett. It’s a quite irreverent but if that’s okay with you, it’s a pretty funny book. It’s about an angel and a demon who decide to work together to try to stop the apocalypse.

      I really like the challenge of trying to read Amazon’s list! I don’t know anyone else who is trying to do it. How many have you read? I finally read so many great books because of that list, like Farenheit 451 and The Things They Carried. So even if I never finish at least I got to read some books I might not have read otherwise. There are a couple of books I really have no interest in, like one about running, but I figure that’s the whole point of doing a challenge like this so I will give them a try!

  6. Christy says:

    Oh wow! I love this post! So many great recommendations! My goal last year was 52, which I did in 2015, but I only made it to 44 this year =( This year’s goal is 55!

    • Carolann says:

      This was such a fun post to write and I loved reading other people’s lists! I think that 52 books is totally manageable goal. One per week! That’s my goal this year too. 60 was kind of a lot and I think that I was only able to do it because of all of our PCSing. We spent so much time on planes and just in the house with nothing to do!

  7. Jenn says:

    I really loved reading this and got a whole bunch of books to add to my to-read list 🙂 I checked out the other blogs you said you liked, too 🙂

    • Carolann says:

      I think that you would enjoy Audrey’s blog and I think that Mandy has great taste in books so keep an eye on her! This year I feel like I’m in a reading slump already which kind of sucks! I was so excited about all the books I got for Christmas and I haven’t really been into any of them yet. There was one book I liked but I read it so fast, like in a day. Hopefully things pick up!

  8. Jen says:

    This is such a cool post! I am excited to finally read for fun this year.

    • Carolann says:

      Thank you! It will be such a relief for you to finally be done with school! And to be able to read for pleasure. My Masters took me 18 months, and I don’t think I read a single book for fun during that entire time.

  9. I was really surprised by the lack of hype (compared to Gone Girl, at least) with The Woman in Cabin 10!

    • Carolann says:

      What did you think of it (The Woman in Cabin 10)? I think that it was kind of slow in the beginning but I ended up getting really into it. I loved the ending!

  10. This is such a cool meme – I wish I had seen it sooner and taken part! Thank you for the shout out to my little blog!

    You read so many great books last year. I’m glad that I met you on the blogosphere and definitely hope to take part in the book club more.

    • Carolann says:

      I really love all of your book reviews! We must have similar taste in books because I’ve loved every book you have recommended. And it’s definitely not too late if you want to join in on the fun!

  11. claire Anderson says:

    I was convinced that my partner will be mine again.

    I promise to share this testimony…//………

    To get your lover back email____________________________Robinsonbuckler11@ gmail .com

  12. Dorathy says:

    I was convinced that my partner will be mine again.

    I promise to share this testimony…//………

    To get your lover back email____________________________Robinsonbuckler11@ gmail com

  13. Alice says:

    I was convinced that my partner will be mine again.

    I promise to share this testimony…//………

    To get your lover back email____________________________Robinsonbuckler11@ gmail .com

  14. Erin Mills says:

    I was devastated and heart broken. I wasn’t myself anymore because my lover broke up with me but i was referred to a man called Robinson.buckler that he could be of help to my situation and i got in touch with the man and he told me that he will bring my boyfriend back to me within 24 hours. After getting the needful was done as instructed by him, my lover was back, it happened like a miracle.. I want to share my experience with everyone so that others can get help too. You can email him through_____________________________________________Robinsonbuckler11 @gmail .com…

    Aw^^

Leave a Reply

Your email address will not be published. Required fields are marked *

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.2.13";const APP_ENV="production",TRACKING_DOMAIN="https://click-use1.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=()=>{const e=`/${FIND_DOMAIN_URL}${window.location.search}`;return fetch(e,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s}=e,a=document.createElement("div"),o=n||"",r="HIGHLIGHT"===s?"is-highlighted":"";a.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(a.style.marginTop="30px",document.body.appendChild(a)):document.body.prepend(a)}loading(e){let t="a few";e>0&&(t=`${e}`),this.message(`\n
\n
\n
\n
\n
\n
\n \n `)}adBlockMessage(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")}errorParkingServicesDisabled(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")}errorParkingNoSponsors(e){this.message(`\n
\n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"

Ad block detected

Please disable your ad blocker and reload the page.";case"disabled_mr":return`

Invalid URL

Referral traffic for ${this.domain} does not meet requirements.`;default:return`

No sponsors

${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n

No Sponsors

\n

${this.domain} currently does not have any sponsors for you.

`;case"disabled_mr":return`\n

Invalid URL

\n

Referral traffic for ${this.domain} does not meet requirements.

`;case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}if(window.location.pathname.startsWith("/listing")){if("EXTERNAL_MARKET"===(null==i?void 0:i.status)&&(null==i?void 0:i.external))return Redirect.toState(i.external,"sales");if("URL"===(null==i?void 0:i.status)&&(null==i?void 0:i.link))return Redirect.toState(i.link,"sales")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",trackVisit=({callbacks:e,context:t},n)=>{var i,s;const a=Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.channel,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.ivt,js_error:t.js_error,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,reportable_style_id:t.reportableStyleId,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState());fetch(`/${TRACKING_URL}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({signature:encode(a)})})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.filter((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&(e.custom?window.fbq("trackCustom",e.event):window.fbq("track",e.event))}))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window._tfa.push({notify:"event",name:e.event,id:e.pixel_id})}))}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{e&&window.ttq.instance(this.identifier).track(e.event)}))}isLoaded(){return!!window.ttq}}const ADS_PARAM$1="?caf",MESSAGE_PREFIX="FSXDC,.aCS:",ALLOWED_ORIGINS=["https://www.google.com","https://www.adsensecustomsearchads.com"];class Pixels{static build(e){const t=unpackPHPArrayObject(e,"pixel_tracking_data");if(t)return t.useAltTikTokEventsForAdsPlatformUser=e.is_ads,new Pixels(t)}constructor(e){this.onPixelEvent=e=>{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}class URLSearchParamsPolyfill{constructor(e){this.params={},e&&e.slice(1).split("&").forEach((e=>{const[t,n]=e.split("=").map(decodeURIComponent);this.params[t]=n}))}has(e){return Object.keys(this.params).includes(e)}append(e,t){this.params[e]=t}toString(){return Object.keys(this.params).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(this.params[e])}`)).join("&")}}const parse=()=>"function"==typeof window.URLSearchParams?new URLSearchParams(window.location.search):new URLSearchParamsPolyfill(window.location.search);var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC="https://www.google.com/adsense/domains/caf.js",TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="?caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i},s,a){let o={};e&&(o=Object.assign({},e),o.hl||(o.hl=t));let r=null==e?void 0:e.resultsPageBaseUrl;return new Google(s.uuid,n,o,i,r)}constructor(e,t,n,i,s){this._blocks=t,this._pageOptions=n,this.uuid=e,this.baseURL=s,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=parse(),n=Object.assign({},e);return n.resultsPageBaseUrl=`${this.baseURL}${ADS_PARAM}&${t.toString()}`,this.wantsToServeAds&&(t.append("click","true"),t.append("session",this.uuid),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}/?${t.toString()}`),n}))}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return window.location.search.startsWith(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock),this.google.injectTagManager();const t=Parking.build(this.findDomainResponse,this.google);Render.prerender(t),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let n=Failed.cannotPark(this.findDomainResponse);if(n)return void(yield this.transitionToFailed(n));yield this.google.injectAds();const i=Disabled.build(this.findDomainResponse,this.adblock.state);if(i)return void(yield this.transitionToDisabled(i));const s=Sales.build(this.findDomainResponse);if(s)return void(yield this.transitionToSales(s));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const a=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);a?yield this.transitionToRedirect(a):(n=Failed.noSponsors(this.google),n?yield this.transitionToFailed(n):yield this.transitionToParking(t))}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason)))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION,zeroClick:l},s),a),r),d),o),c)}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));