Quarterly inventory – 2024 Q4

Dear FutureMe,

Today would be a good day to do a quarterly inventory.

How is your personal life going?

How is your work life going?

How is your Volunteer Service life going?

Future me

I’m a little worried that this inventory is a bit TL;DR.

edited 2025-01-08 with a Personal Life update I’d forgotten to include

Personal Life

I did five six things to improve my personal life this quarter, although only four five panned out. A sixth seventh is neutral.

New refrigerator

I’d been living with a poor quality refrigerator – Samsung – for a long time now. I bought it in 2009 after the divorce, but a few years later, the internal fan died. Later I would learn that these Samsung refrigerators do this a lot. Because the internal fan dies, the moist air inside cannot be vented to the outside, it condenses, and then collects into a pool in the bottom1. At first, it is just stinky, but then later the pool of water tends to freeze. It finally froze one of the vegetable drawers into place, and I couldn’t open it up (well, I broke the drawer trying to pull it open). That was the last straw, so I committed to spending the $1,800 to replace it.

By the way, the scooper for the internal ice maker does not come with the refrigerator, so I should not have left the old one inside when the guys hauled the old refrigerator away.

Today, I am the owner of an LG refrigerator that I like. It has a nice feature that the Samsung didn’t have: the door has some sort of governor on the hinge, so as the door gets to about 3 inches from shutting, the governor kicks in and slows the door down. It closes with a gentle thud, where the Samsung used to slam shut at some speed.

Dead tree removed

Back in 2006, while I was still married, my wife and I planted a Weeping Willow tree in our backyard. With what I know today, I won’t be doing that again. Weeping Willow trees are thirsty, and I live in a semi-arid desert. It was great for providing shade, and grew rapidly. But its roots are invasive because they are looking for water. The other problem with it is the vast number of small leaves; when it drops its leaves (and the tree overhangs the house roof) the dead leaves are quite the chore to rake off the roof of the house.

My Wi-Fi access point died, and I didn’t really care much – because I’m not really a fan of Wi-Fi, so I lived without it for a couple of weeks. Whoops – this left my Hunter sprinkler controller disconnected. It was during the early part of the year, and we’d had a dry winter. Then the warm weather of Spring arrives, and the Weeping Willow is dying of thirst, but I don’t see that. I figured out that the Hunter wasn’t working, so I ordered a replacement Wi-Fi router / access point. By the time it gets here, and I get it installed, the Weeping Willow is already dead.

After a while, I can see fungi growing out of the base of the trunk. A few weeks ago, we had a storm blow through, and a tree in my Mom’s front yard blew over. That tree appeared healthy, but it turns out that fungi had completely rotted the roots away. This makes me look at my situation: I’ve got a large tree, dead, in my backyard, and if it fell on the house, there would be a lot of damage. I called the same tree service, and $1,600 later, the dead Weeping Willow tree is gone.

Dryer repair

The same time I’d bought the Samsung refrigerator, I’d bought an LG clothes washer / dryer pair. I’ve already had to replace the washer, but the dryer is still the original. And … the rollers carrying the drum finally wore out. This one was quick and easy, and a gentleman who worked for Sears for many years in their appliance department replaced the rollers for $160.

Jordan Peterson book tour ticket

So, getting the refrigerator replaced also meant washing the floor underneath the old refrigerator, first. The whole kitchen floor, really. Installers are going to show up and pull out the old refrigerator and install the new one. Wow, I disliked the idea of washing the floor under there. Everything about this will remind me of how much of a failure I am; you see, I haven’t washed under the refrigerator since 2009. My imagination is that it will be ugly under there.

It actually wasn’t as bad as I feared, but still, I went into the process with trepidation.

Immediately after that whole process, I got an email that Jordan Peterson was doing his new book tour, and he would be in Fresno. I could buy a ticket and buy the opportunity for a personal meet-and-greet. I loved this idea, and used it as an opportunity to reward myself for the ordeal.

For a little while, I’ve been thinking about the question of “If nothing in God’s world happens by mistake, then why do bad things happen to good people?”

I have an answer to this, I think. It is probably worth a blog post of its own. But I really liked the idea of running it past Doctor Peterson, first. His most recent book is We Who Wrestle with God: Perceptions of the Divine which sounds like a perfect match for the question, no?

I bought the ticket. Hooray.

The Fresno tour stop was cancelled. Sigh.

I’m sure that what happened was that the last time Doctor Peterson was in Fresno, he sold out the Saroyan Theatre almost immediately. It holds about 2,300 people. So this time around, I suspect his team booked the Save Mart Center. It can hold 16,000 people or more.

But the Save Mart Center has a serious flaw: parking costs $65.

At the Saroyan Theatre, parking costs $8.

Some of Doctor Peterson’s tickets at the Save Mart Center were in the $50 range. To pay more for parking than the ticket to the event itself? Most people opted out, I suspect. And so then Doctor Peterson’s team had to face the reality that not enough people signed up to cover the cost of the Save Mart Center rental. Tour stop cancelled. If I were in his position, I’d have cancelled too. But still, it is a bummer for me.

It appears to me that the Saroyan Theatre is still available for that same date; it would be great if Doctor Peterson would change the tour date to it, instead of cancelling. I’m not seeing an easy way to contact Doctor Peterson or his team, however.

Anyway, briefly, I was delighted with the idea of meeting Doctor Peterson and finding out if my idea of why bad things happen to good people is off-the-mark or not too bad.

Deleted all things Google

I had forgotten about this one, but remembered it 2025-08-08.

I went in to Google and requested them to delete everything they have associated with my old account. I’d had that email address for more than a decade, I’m sure.

I’d bought “Make Orwell Fiction Again” baseball caps as gifts, and it seemed a little hypocritical to even have a Google account when I’m advocating for their demise.

Factorio: Space Age

Wube Software has been working on Factorio: Space Age for two years now, and they finally shipped. I really like Factorio. But I do need to be careful to balance my game playing with the rest of my life. Here’s the Steam statistics of what I played this year.

Work Life

If $29,000 fell out of the sky and into my lap, I would retire tomorrow.

I recently screwed up a new email retention setup. The only saving grace is that Microsoft has seen this type of mistake before, and they have practice in fixing it.

My problem is that I am an old school programmer, and I don’t know PowerShell very well. I terribly want to use a pattern of Loop over an array > compose a command using the current element > Write-Host $cmd followed immediately by Invoke-Expression $cmd.

This lets me comment out the Invoke-Expression part until the command is 100% correct. Then, when it is correct, uncomment the Invoke-Expression line and do the thing times the 35+ items in the array.

I did get a whole slew of Adaptive Scopes created this way. But the next step is the policies themselves, which have the time period of retention in them.

I’m stressed out that what I want to do doesn’t work because PowerShell barks at me that it cannot convert an object to a string.

I’m further stressed out because my boss told me that the Director of my department is waiting for these retention policies to be done.

I have always had a deep-seated fear of not being good enough, and here is the VIP with expectations, and I’m failing him.

Anyway, I did one of the policies manually, and I goofed which policy should be applied to which scope. If I’d done it with a script, the computer would not have made that mistake. So now we’re in a position of having to restore deleted items. Ooof.

Changing subjects, in my previous quarterly inventory, I’d mentioned Kiteworks and my frustrations with it. Here we are three months later, and no, I won’t be telling anyone that Kiteworks was a good way to go. I was super annoyed that we’d been going along fine, we added their software, and then started crashing about 1% of our machines. I was super annoyed that Kiteworks’ answer was “your Outlook mailbox needs to be rebuilt”.

What a bunch of clowns.

If we add your software and the machine crashes, your software is what changed the machine into a broken machine. If the temporary work-around is to disable your software, and the machine becomes unbroken, where does the problem lie?

My management sided with Kiteworks, however. If the user is broken, and Kiteworks says the fix is to repair Outlook, then do whatever it takes to make the user whole.

Broken are only 1%, but we have 5,000 machines…. So I gritted my teeth, and did a metric buttload of repairs on machines. And yes, Kiteworks is, so far, working correctly.

BUT: whatever happened before, will happen again, and Kiteworks will start breaking machines all over again. This is the short-sightedness of my management. Instead of fixing the hole in the hull, bail water faster.

I cannot retire soon enough.

One task that was fun was making an iPrint map with clickable buttons for installing printer drivers. I used Bluefish for the web page editing, and ImageMagick for generating the buttons. Being useful is what makes me happy, so it lifted my spirit that it looked good and was functional.

Volunteer Service Life

This was a stressful quarter. I was president2 of a 501(c)(3), through December 31st. A few weeks ago, the state of our finances came to a head: we had to cut the hours of our single employee 20% by closing the office on Mondays. Cutting her hours a little before Christmas was great. Just great. Not.

But the reality is that the massive inflation of the last four years is hurting everyone. Groups are having to pay higher rents, so they don’t have money left over to contribute to us. Members are feeling the squeeze, too. We had one group that used to contribute $300 monthly, but their building burned down. The members scattered to other groups, but those groups haven’t made up that monthly amount.

We used to also have a couple of members who contributed a good amount, monthly. They have passed away.

The result is that for the last twelve months, we’ve been running almost $900 a month in the red. Our bank balance is down 40% over the last year. If we didn’t cut now, we’d be looking at closing the office in a year. This should give us two years to figure out what we’ll do.

We’re planning a New Year’s Eve dinner and a speaker event, but our primary planner has been flaking out, but then promising to do better, so this is a mess. The NYE event used to be our biggest fundraiser of the year. I hope it will be good this year, but I know that whatever will be, will be. Edit: the event went very well. The food was delicious, and plenty of people attended. The speaker was great. I’ll find out about the finances next week.

A third thing that happened is that a friend of mine was faced with the decision to either man up and become useful, or continue to sit on his ass collecting disability and watching television, smoking cigarettes, and drinking Dr. Pepper. He chose the latter, and it went very, very, badly for him. I feel a little guilty that I didn’t challenge him further to grow up and becomes useful. There are some things which are worse than a premature death, and he is now “getting” to experience that.

I hope next quarter is less stressful. I am glad that in my personal life, progress on major projects has been made.

  1. Technically, the outlet tube gets water in it, and that water freezes, creating a build-up. Eventually the whole tube freezes shut, which causes new moisture to backup into a puddle. ↩︎
  2. That, plus $5, would have gotten me a fancy coffee at Starbucks. 😉 ↩︎

Time with family can be hard

When I started this blog, I had three goals in mind:

  • Learn WordPress, and have content to play with for things like upgrades, migrations, and figuring out how WordPress works.
  • Provide technical tips, tricks, and recipes for doing computer things, primarily on Linux.
  • Writing content that expresses my opinions.

If I’m honestly looking at my own motivations, that last one holds the most appeal to me.

I’m old enough to be a grumpy old man, but I’m also old enough to know that opinions without solutions are terrible reading. No-one wants to listen to a whiner.

In fact, one of the defining moments of my life was when my dad was exasperated with me, and he exclaimed at me something I needed to hear at that time:

Anyone can whine about things; useful is providing a solution.

My dad, when I was about thirteen years old and whining about something big time

So, I’m up north with family for Christmas vacation. Dealing with family can be hard. I have two solutions: have another community I can escape to (my volunteer service community), and have my computer I can escape to.

Yesterday was day four of cabin fever with the whole family. My brothers and mother had exhausted watching all the movies and YouTube they could stand. They wanted to do something, anything, that wasn’t watching more television. YouTube is simply television without the cost overhead of paying writers, producers, and talent. My brother’s television set comes with YouTube, with embedded advertising. It sucks, mightily. YouTube also has the problem that it gives a platform to total con-men who are looking for marks to prey upon. This really isn’t any different from the television preachers who pitch salvation for dollars.

And I get it: if my life were that empty, I’d be easily preyed upon, too.

At this point in my blog, I’d like to do a 4,000-word essay on the problems of American life where our government and media conspire to drive us to be consumers of crap to fill the void in our life, instead of healthy and useful. But all that would really boil down to is this:

As an aside, I really like Stephan Pastis’ comic strip, and buy his page-a-day calendar every year. Most days are at least mildly amusing, and some days produce actual laugh-out-loud moments. Some days are profound. Not that I’m trying to convince you to buy stuff to fill the void in your life….

So, back to my family. We all suffer from a lack of purpose in life. I’ve got it the least bad: I’m still employed with a place that pays me well, and (although I hate my job) I’m working toward my retirement.

Mom never did take my step-sons in as her grandkids, and neither of my brothers got married and produced kids either. So my mom tends toward self-pity, having gone through the trouble of raising us boys, but not getting the benefit of grandchildren. She does take care of Frank, the man she partnered with after a year of being a widow. So that gives her purpose. She also had to specifically decide to go out and socialize. She has friends she visits to play Majong, and a club called Gadabouts, and Red Hat Society club.

One of my brothers was forced into retirement early, and hasn’t found the motivation to get a job. He’s actually a superb cook, and this last week he has been cooking all our meals. The meals have been delicious. But in his off-time, all he does is watch videos and sleep. Clearly, he is depressed. I hope he can find a purpose in life.

My other brother has always had a rough life. He works in a low-end job, and tends to get restless, irritable, and discontent with whatever job he has. The longest stretch where he was happy was in Death Valley, where he worked from 2003 to 2021. But the HR lady there went woke, and as soon as the trans asshole showed up and started their bullying, the HR lady sided with the trans asshole, and my brother quit. Now he’s up here in a cold, dismal town where it rains nine months out of the year. In his off-time, all he does is watch videos and listen to re-runs of Art Bell’s Coast to Coast AM. I hope he can find a purpose in life.

So how do I find purpose in life?

Volunteer service is the obvious win for me here. The particular people I spend time with consider ourselves a fellowship; this is a good name for our community. Although I had to go through hell to face the fact that I needed help, once I got into this fellowship of help, my life turned 180° around. I can help because I’ve been through the same hell that all newcomers are going through.

If I didn’t have this, I hope I would have found a church fellowship to be a part of.

I do have a circle of friends on the Internet. We met on Slashdot more than 22 years ago. Back in 2019, one of our friends died, and 21 of us went (most of us flew) to Seattle to attend his celebration of life. Although I still communicate with these friends, it isn’t daily like it used to be. Half of them came down with TDS, and the community split in two. But at one time, there were more than 80 of us. This digression brought to you by:

There is a principle which is a bar against all information, which is proof against all arguments and which cannot fail to keep a man in everlasting ignorance—that principle is contempt prior to investigation.

William Paley (1743-1805)

Half of my circle of friends on the Internet have contempt, prior to investigation, regarding God.

I thank God that I am not one of them. I have plenty of evidence that something out there, supernatural and surpassing understanding, is an active agent in my1 and other people’s life. Point being, that if I weren’t in the fellowship I’m in, I would hope I would become a part of a religious fellowship.

Volunteering down at a soup kitchen would be good for my soul.

Any sort of volunteering would be good for my soul.

I also have plans (or perhaps they are dreams) of writing a lot of code when I retire. Priority 1 is obviously more exercise. After that, I want to write some code to lay out Factorio blueprints, and build the software that manages the tree structures needed to lay out connected pieces in sensible ways. Ultimately, I intend to write a flow charting-based integrated development environment based on Nassi-Shneiderman flowcharts. I’d like to use the IDE to write a video game loosely based on the book of The Legacy of Heorot.

Back to my volunteer service: there are two different offices which are either directly related or tangentially related; I plan of volunteering at both after I retire2. They also need a newsletter editor, and I’d love to write a system in LaTeX to import the various documents and format them consistently. I’m not terrible with Perl, so I think I can work up a nice system of opening files with LibreOffice, converting them to plain text, formatting them the way I want, and then adding back in whatever italics, boldface, super- or sub-scripting elements were in the original. I already do the website for one of them.

So yesterday, everyone was frustrated that this time together had gotten so boring. But I’m not bored because I know “This too, shall pass.”, and, I have other outlets.

I hope, dear reader, that you too can find other outlets.

Volunteering my time and effort gives me a high-quality purpose in life. My self-worth goes up when I am helpful.

I hope you can find ways to grow your self-worth and purpose.

Merry Christmas.

  1. When I let Him. ↩︎
  2. One of them is a 501(c)(3), and for the next five days, I am president of the board of directors. That, plus $5, will get me a coffee at Starbucks. Not that I’d ever go to Starbucks, they’ve gone woke. Anyway… the other is probably also a 501(c)(3) but I haven’t tried becoming a board member yet. Having a day job is not conducive to being of service there. ↩︎

I’m giving up on Apple HomeKit

My setup for Apple HomeKit was an iPad, a HomePod Mini, and my personal iPhone. The iPad was where I would configure Shortcuts > Automation > Personal Automation, which would light up Bluetooth and play playlists. My goal was to replace my Amazon gear as my home alarm clock. The Amazon Echo system started well, but enshitification happened, and I removed all that gear from my life.

The HomeKit solution mostly worked, except when it didn’t. The iPad would, once in a while, simply register an error instead of doing the automation task. It can be a real bummer when your alarm clock doesn’t go off. I lived with the poor behavior because it only happened every week or two or so. But I had a nagging feeling that long term, this is not going to be acceptable to me. Computers can be reliable, and I’m not willing to pay Apple’s price for an Apple TV. I think I confused the Mac Mini with the Apple TV; the Apple TV is about the same price as what I went with later.

Speaking of which, I’ve abandoned the low quality competitor, too: my Roku Ultra is powered off and headed for the scrap heap.

The thing that kicked my ass into gear on abandoning HomeKit was the most recent upgrade of iPadOS. I forget if it was 18.1 or 18.2, but after the upgrade, all my playlists were empty. The MP3 files are still on the iPad, but the playlists I’d programmed into Apple Music were empty. Would I like to add my music from the Apple iTunes store? Go kick rocks. I copied the MP3 files to the box for a reason.

So now I have a choice: recreate the playlists on a box I don’t think is going to work out in the long run, or, start over on something new.

I chose to start over on something new.

Nicely enough, my brother gave me a great Christmas gift last year: the Morefine M8S N100 Alder Lake PC. My brother specifically looked for one of these because a reviewer he listens to said this small form factor PC is one of the quietest boxes with active cooling, and specifically is Linux compatible. I wiped Windows off of it and installed Manjaro Linux, just like my main desktop. The HDMI on it drives my television (monitor) and I use Bluetooth to connect to the soundbar.

As mentioned in the Home alarm clock: no progress post, I’m not having success running it headless. So why not go whole hog in the other direction? I have a work-around: turn the display panel off. I have to use the TV remote to pull up the menu which lets me power down the display panel. If I want to see the screen again, I use the remote. Other than that, the Morefine M8S is a normal Linux desktop driving a television set, and the television set never turns off (well, the electronics driving the tuner / HDMI ports, at least). This also lets me use Rumble as a YouTube replacement, with a wireless mouse and keyboard from my bed. But I digress.

I’m using KAlarm to run commands on a schedule. The commands are:

vlc --intf dummy /path/to/music/playlist.file

And so far, it hasn’t failed to play an alarm yet.

A bonus feature I didn’t expect: the alarm music sounds better. Of course it does, an iPad playing an MP3 to a soundbar doesn’t do 5.1 stereo; but Manjaro on the Morefine M8S does know how to send that type of stream over Bluetooth. My guess is that Apple was nerfing the MP3s in favor of AAC from the Apple iTunes store; I don’t know. But I do know that the new setup simply sounds way better.

And a future bonus feature will be that I could write a Perl script to replace the contents of the .pls or .m3u files if a desire for variety should strike me.

The only downside has been that the HomePod Mini is now kind of useless. It was nice, having the automation on the iPad to be able to play something in either the soundbar in my bedroom (mornings and evenings) or the HomePod Mini in the living room near my main PC (lunch break times).

I am going to flash a Raspberry Pi with Homebridge, but I don’t know if that will let me send a VLC stream to the HomePod.

Still, I have a great setup for watching Rumble or such while I fold my laundry, listen to a podcast to fall asleep to, and I have faith that my alarms will no longer fail me.

I am glad that Donald Trump won a second term as President of the USA

It was obvious that the 2020 election was stolen because of government interference – censorship – with the Hunter Biden Laptop story. There were some photographs on that laptop which would have put Barack Obama in an extremely difficult position, were he to be asked if he still supported Joe Biden for president. Hunter (Joe’s son) was enjoying corrupting Barack’s daughter – does Barack still support Joe for President?

No matter how Barack answered the question, the Democrats would have lost ten to fifteen percent of their voters. That would have made the election a landslide in favor of Donald Trump.

There was all loss and no win for the Democrats if that question got asked. To avoid that question being asked, our government colluded to censor the Hunter Biden Laptop story during the election.

I remember friends trying to share that story via Twitter and via Facebook, and their attempts to share were denied. These two companies have1 become censorship tools of the deep state. Google has since joined their rank.

But Julian Assange got it right: as Trump was forming his new government, he got hustled by deep state wolves in MAGA clothing. In Donald’s interview on the Joe Rogan podcast, he made the point that it is really difficult to know who to appoint. With a lot of the candidates, there isn’t a visible list of accomplishments. You really don’t know who is going to be good in a position. There are an influx of partisans telling him who to appoint, but they aren’t necessarily trustworthy either.

I am hoping that here in his second term as President, that Donald Trump nominates Ron Paul as Director of National Intelligence, and tells Ron that he can fire anyone he wants, and still have full support of the presidency. I personally think that the CIA should be decimated2, and hope that Ron Paul would be willing to do that. Doctor Paul might be a better fit for being over the Medicare department, because he is a medical doctor, and he has decades of experience fighting government largesse. So perhaps Edward Snowden should be pardoned and then made Director of National Intelligence. I’d like to see someone in charge who was bothered so much by how our intelligence agencies have strayed from their path. Both Doctor Paul and Edward Snowden fit that bill.

Another hope I have is that Donald Trump appoints Robert F. Kennedy Junior as Secretary of Health and Human Services, which would put him in charge of the FDA. Make America Health Again is a wonderful idea – probably the best idea. It could also make sense to put RFK Jr. as Secretary of Agriculture, since this position is over the Forest Service, and RFK Jr. is an environmentalist. Secretary of Agriculture is also in charge of food inspection and safety. But I think he would be best for our country directing the FDA to become a protector of the public instead of stooges for the pharmaceutical industry and the processed foods industry.

I am hoping that Donald Trump appoints Tulsi Gabbard as Secretary of Defense. I’d like to see Tulsi as our first female president. I actually wanted her as Vice President, but I admit that JD Vance was a great pick. Because Tulsi was active military and deployed to the Middle East, she has real-world experience in the horrors of war. That’s the Secretary of Defense I want. I also think that were she Secretary of Defense, when it comes time for JD Vance to pick a Vice Presidential running mate, Tulsi would be a perfect fit. That would then set her up to be our first female President.

I want our first female President to be someone honorable, not someone who slept her way to the top.

Another Cabinet pick I would like to see is Elon Musk being appointed as Secretary of Transportation, if only to get smart cars running on smart roads, quickly. It seems to me that this will be one of the best environmental moves; reducing as much as possible the amount of fuel used to transport food, goods, and people.

Of course, I’d also like to see Elon appointed Secretary of Government Efficiency. This position doesn’t exist (yet), but it should.

Although I think that Jack Welch destroyed General Electric by instituting a yearly rank-and-yank firing policy, I do think that the entire US government would benefit from a rank-and-yank performed at least once, and probably once per decade (randomly). Because Jack Welch pitched the idea to do it yearly, it destroys the company it is implemented in. But once in a great while? Yes, I can see how it would be good for an organization. Especially for government where it can be so difficult to fire bad employees.

Anyway, I am happy Donald Trump won the election. I know that there is still danger that the deep state will try to assassinate him before he takes office. But at least now, JD Vance would then become President, and he seems like the kind of guy who would not be cowed by the deep state. If an assassination of Donald Trump happened, I think JD Vance would prosecute whomever for treason with zeal to the fullest extent of the law.

  1. “Had” in the case of Twitter, because it was rescued by Elon Musk. ↩︎
  2. The term decimated has a specific definition: the Latin deci means “ten” so after decimation one out of ten are left. 90% gone, 10% left. With that, the CIA will be too busy to do their warmongering treason and censoring treason and could only focus on information collection actions. ↩︎

Factorio: Space Age

Maybe my problem with Factorio: Space Age is that I’m playing it wrong? I’m old, which means my brain runs slower than these young kids. This was the problem I have with Rimworld: it assumes I have a young brain, and severly punishes me for not being fast enough. So then the only thing I can ever do is lose the game, over and over again. Rimworld is not fun.

Congratulations to the guys at Wube though. I saw a post where Steam reported 100,000 simultaneous players this week. That’s $3.5 million income in one week. Two to three years of programming work is paying off. Good on them. 🙂

I’m having trouble because this new Factorio seems to be growing biters at a much faster rate. I’ve never been good at killing biters, they overwhelm me quickly and then I’m dead. So my strategy has been to build up a defensive wall around my base. Now I’m taking too long to do that, and it is not good.

So now I’m trying game46. Let’s see how this goes.

Here’s a jumpstart iron miner and smelter:

0eNqdlNtugzAMht/F16FqIDTAq0zTxMHrIoGDknRbVfHuC616XNpSLp3In3//lr2Dqt1gbxQ5KHagak0WircdWLWmsh3f3LZHKEA57IABld0YVRtDaKJOkaJ11BjVtjAwUNTgLxR8YE8J1mnC6NNzyhovcuPhnQGSU07hQco+2H7QpqvQePhDEQx6bX2uprGy58mEwRaKKI19jUYZrA+fYtR4g45P6B+tG6So/kLrAsx0kR6pi3QIkJJbkYosGue//sPEFexKZBxAizsW3u98GVKYnjDOlGR7bVxUYfu42+WtwJCLqxd6P6N52Ej5Aiw5wkQWhmVzpiLyKVPJZ9i5l/nUTr6cg84nofksQ7IphvDJy3QemxzH5td/fymKi9PE4BuNPdTKuJB5LOVKcBlnw/AHrQGN8Q==

My favorite coal jumpstart rig Early Coal Mining Rig:

0eNqdl91uozAQhV8l8jWJbOMfzH0v+wTbqiKJVVkCg4yzahTl3euUlTaNIHjmErA/jg8zzMyF7NuTHYLzkdQXcrTjIbghut6Tmrw0oT1vOued/9wc+m5o7dfuzZOCuEPvR1L/uZDRffqmve2N58GmTS7aLq3wTXe7iqHx49CHuN3bNpJr2uqP9ovU7Fqsbt6fgrdhOwnYHoNr2zsCv74XxProorOTlp+L84c/dXsb0iuWVBRk6Ec3HfJCEmqryp0syJnURuxkesXRBXuYFvCb0Acyx5BlIs+wSgCLg1SKp0bO4Se4mpMpATIpSKYCkBmIrKEG0CcGVPkyZQWSaQBkAyIzCnRAVk8cYICEkuo+7H8JFXNojkGLLDQgwaSG2Ssw/wE1/x9gEgPTCzD1+OGdH22I6dmzrNJZhmoIm64prQC0/+Gfp9RA2NWKUk4xMaqy6gmDCFVrQjmEpkGWckg2SRhaYNAqC43KrWrBXoWBmQWYxpT/KuvQFQZtHtFqDm2glZX9o6/LLsE1y+SzGZSt89kcE74m50uWqKTLCpJSIIKEUbrQy0pELzfRVmOuVIgONJetES1YLhvTOOayDaK3yWQLTLnLZTNEQM+wxW0E/JkZ67s5tiBtk2Dp3uuv0XVDWXr214ZxKsQVE1oYrTSjSqaO9xt1u+Xz

So the next step is to start generating electricity via steam. This now opens up Red Science. But of course, to transfer electricity, I need copper for wires.

Here’s a science lab I like:

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

This sushi belt science blueprint does have a problem: if I run out of a science pack, the belt can freeze because it fills up. If the only science packs within reach of the inserters are fully stocked within the labs, no items are pulled,: thus the belt contents don’t move. The solution is to stand on the underground belt and scoop up everything (draining the belt) and then put the scooped up contents back inside the storage chests. When logistics robots become available, the wooden boxes can be replaced with requester chests. I also added a combinator on/off switch – that will be good for later, but in the early game before I have combinators, I need to manually turn off the inserter control.

For creating science packs to send to the labs, I like Tileable Science – Early/Mid Game v0.17 by Christoffer Ramqvist however, the green science blueprint (where I am supplying gears on my own) has an error, so here’s the corrected version:

0eNq9W0tv4zYQ/isBTy0g7YqU+DLQcy+99bgIAtnROkJlyZXk3QaB/3spubGdWKPMjJ0ihzCM/M2D8w2H1PhFLKtdsW3LuheLF1GumroTi28voivXdV4Nc3W+KcRCVM267PpyFXersqhXRbzNV3+JfSTK+rH4RyzkPpr4VNk2dbwu8jb++VQU1dnzan8fiaLuy74sDiLHP54f6t1mWbQBMHoF6du87rZN28fLoupFJLZNFz7W1IOgABU780VH4lkstP2ig4jHsi1WhweyQa13yIqAnJGQUwKyJiFnBGRFQtYE5JSEbAjICQnZHpG7bVX2fZibwJSvmO5jRIfX1TqSrp6A7EnIMiFAWxr0iX27wNd23TbhNwg+w79I9M/bMRXU210vpmQpkqwMIavZ9ZCwE0WHXNfndR+vms2yrPO+mYoiq+fkBYy+baqHZfGU/ygDQPhUd/h/93YcEtxrpozE97IKMft+djbTRuLvXR5iPWgi6qbdhDQ7iN9s83bUfCF+Gyd2QyaX+/vws5+y/5RI8q4rNsuqrNfxJl89lXURq9lE5UcHBPPL7ZyehwceLtSd0kZz0tqgxxSY4YA5FB3OEk4wpYqLKjzeBtu3TVXMZkpI2VPCKeuuaIEUloJqSjWF6s+iKKzrUx6C6zGek5CQHKESqiOSDxyhJDUgT/n39gGpFJseRt1em5S8nK8BYxLUcnLKCiOBleSQedRzCsyQ+DHq9DE/lCWoKD9S0XHAIOd5lL0JuLyT9qYJDRXnxZRP2U8gSar4JElRRX3Kiet0ep1TFuMUAKbZ6R5puuGEOKQti3yQHx0/Uevbx6Dnx2CGOv4lnLDR077LJAcsA8AUtzQC1Uv5UY1zZsYJRMh+zQGDTDfc8gpEtPxcfXueZFew1t1eG8/hgZ12tGYx1ABgklb9GNS+rRUN1eJQUw4BIMNZ1ISWRNOqH6QXDQ0V6cUreHp7ZmjH38886tKRRT3gCGlY1HMAmOTvPijTjeKEOKQti3yQH/l3Q1bePAaNZsegRR1+Dee+yALnN2M5YMDJ0jhuTQWqx78YwjnTJoxAhOy3kgMGmG4Vt6YCEVN2rv4EntgrWJvdXhtNqjGsQu2OlnYbZFMcKouzwIHUOg4YcFS2tNsgpBddwk8CqOsCx+It4APH2Seh1XFXUPb2JHEZ6v2lOsgHTnaOyDSNWkFacXsJOh14nJsfCxy4Hf8Mae3bpbxQhrKGnArWAscef2Lm97zrcUUO7rjiJbuWAI5VnkVMyPIUb3kCWj753j1j7/uQ4ZqfRN5F3pmZhJjzhvKm/NgVY/1lpCBelXuLXxoNinJTyA6PnNGQWaz0uJerCeecaR1Gb5mQGi5OHJ1bWrjjIlEM1iFfQSecIykanHM/ZKF38IkmOT25jk8yMWivHzuBcGEvEzxXTzkJCe1YrUBsJ3mSOHsdEc5aqCi9R1xpktt8dCnwk5qPDptkU4dtclW2q13Z36zzSCpGR6fDveiWMuWASyR4RsoTekZ3DAVIXVGaaothdL+iwS0HPEHlIUnKQ8f9d3YRZqjqGW2x2GBVCQccuI2SivM6F7uiitScedxyuaGvOMUD2paM0ZCMBtcccFzoK1Ldf9zgmaFPaZI61ino0HcccDD0PaNtG7uiKae9GuuHVHLAsZorVsnGJe1ZgxRJnGSKy1g1G5MNqeZJkzxphlshXpr3SRXi+6/03Ko8PGsPo5ou/0/Tt1XeFzyr7yPxMyg5oH8LpZKOQiGg76PDOFPjeJiKMjOOh6k3Y+MO4zAV2cPzw9SbsZfjeJiKfDaOh6nDOGhQ9sUmqHf63lckqjyEc5j747+r7bs/D1fbd8GxX7u7X34fVnsM2l/D0z+Cf0Yva6N85r3OZKaUlPv9vwztoXg=

This newest map has all four mineable resources clumped together. I used to hate these because mixing ingredients causes trouble. But with Factorio Space Age, every inserter comes with filters from day 1 – so I don’t have to research filters first. This means I could use Autotorio to blueprint a massive drill field, and then sushi-belt my way into four streams: coal, iron, copper, and stone.

I’m going to use 4 Ore Sorter v2 by Reece Silba fed into a couple buffers by Buffer 1B – [Two Middle belts][Ore buffer] by Shade Centurio:

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

Out of the ore sorter, and into a snippet of Smelter Book from by Noel Puldon:

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

I like Main Bus – Belts & Pipes – Tileable by Alex however, the grid settings are off. I’m using a 100 x 100 grid, so something at half that isn’t great. I ended up creating my own version that fits within a City Block.

City Block:

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

And the beginnings of belts and pipes for the City Block:

0eNqlnduuXdeRJX+lwGe5sNecc938WP0ZjULDF8IgWkUSFNlooeB/b0pqiQLMQ0XEfjJsWWPHGeROTqUyR/73q79+/+n1+w9v3n589ef/fvXD27+8/9PHd3/6x4c3f//pv//fV3/eHo/vXv3483/+87tXf/nrD+++//Tx9Z9++n++f/P2H6/+/PHDp9ffvXrzt3dvf3j15//5WePNP97+5fuf/u63f/mv16/+/Orjh7+8/eH9uw8f//TX199/fPVZ5c3bv7/+Sfqf//ndq9dvP775+Ob1L3/vz//lx//19tN//fX1h8//h+9+1fj0+e/48I8P7z7/5y8q3716/+6Hz3/ju7e/cv77/jPn+vf98yf8/c2H13/75a9e3736+OP7n0Teffr4/tNPAP/yQeO7F2Bf/Jj9Xz7mK7ITyw4ju7DsNLK7cHs84/YhPmg+80EnNmoZoy7Bv57hvzH/afi3h/gBzmd+gG3DP8GlfgL+hb2V7hTOXE85s8Qn3U990s6L20OZZb7Hv0m3n4F/kzdV8zbzXd6eKkYb/zZvqhyNBxfelbD68/epSjeG+aj9qY/ifypvh7LLfKV/k24/g/hOqwI41Hf6qbo0+Hd6qLo0Li6snnPjNi+kpwreNH9Ej6fevpP/GT3UM3Wa7/R46kU5xUtblcBpvtPjqbo01fv75Qffbx/15u1Ln3SUT2o/1Gk+6qmaOMXXXtX1qb721xO/MOtRPim5tcyf7fOpArP4Y32qerzMa30+9Xhbpg7Mp2rZ4n+2T/XWXQcXdv0I8yWfT70TF/+ST/WIXuZLPp+qiTt/r0/1z/W7+k4/9XjbzZ/t86lKtfM/26d66+6ij6a6E7v5k3w99U7c+Xd6qUf0/uU7/f7N+9e/NIV/+jG+Ivz7yvo1qYtL7X8gdXOp9W2p48Glzj+Q2rjU8QdSg0tdfyA1dVP7JL8zjqV1D6S762454z20LuM9dRue8V5al/HeuhuOdM+H1kU+nJvufjPdoXWZD1P3uhnv0r1uprtrXebDoX1guqfvYzMjLi/MiG/ftUbE18MLI+Jr8z1qRjx8j5oJTy/MrFjeCia8+/4zs+Lwwoz49N1mRnx5YUZ8+94yIr4fvrfMhDcvjKy4h7eCCU/fN2ZWLC/MiHffJWbChxdmVpy+p8mIQ7OUEd++2XewoYWHVz6Z8uYbY5B5+F4eVJ5eGbqxvBtQeffNO+jG4ZUh8+mbdZD58sqQ+faNLca8PXwvDipvXpm5IWaF5uWUp2++QTeWV4bMu+7e3Ez40MIXEz51/wYSX1oYEt+6g8OIxaTPVMRj0z0cKDy0MLRi6i4OFF5aGFqx674IFPYNF2jFqTtEkPjSwpD49q0chjwfXpkxi/mbzZWLObwydGP65ghUDm0X6MbuO0WQ+fDKkPn0LR3IfHllyHz7pg5TXg+vzNxYm2+SQOXQfoFuTN8xgszLK0Pm3bd2IPPhlSHz6Zs7kPnyypD5LhN+V1svEC1R9xTbN9+kYs7vwytD5llG+KLz4nvqXn777ntt0PnDK0Pm03fEoPLllaEbt++1Mebj4ZUZ87H5XhtkHl4ZMk/fa4PKyytDN3bfEYPKh1eGbpy+1waZL68MmW/fa2PMZjLGvSrFbMyvRXTbmLJfhf7pn3eJst+GpszLK0PmXTfcKPPhlSGz33qmypdXhm74TWeoLEZlTufG5XebqfLwytCNqRtvlNlPqVHmsL9MoY8gDanDxjKVvoI0NCTsKENpMTmzyeohZmd+679R6jC3RqnDHjKlXkEaUofNYyp9BGloSNg1ptJXkIaG3L4Px6jHI8yxMerxCPvElHoEaUgdNogp9QrSkHr3vTdKfQRpSB2m2ih1mGuj1LfvtkFpMVYz3FtymLkaWUO2sNdLDQnTbVR6BWloyO57bpQ67O5S6tN33Sh12Nal1Lfvu0HpEfZzoSEjTLlR6RGkoSHT994oddjBpdS7775R6rB1S6lP33+bTPnyyoMp377/xpjF1M1wzGLqZkrm4ZUh8/T9N6i8vDJ0Y/f9N6h8eGXoxun7b1D58srQjdv33xizmLq5HbOYuvnSfoPQI0hD6hnab1B6BWloyB7ab1D6CNLQkDO03yD1FaQh9R3ab4xaDNt8kWbUYtpmk190MW6zyeok0mGGrCFmvEbWEDFfM+RjTAzYDPmCFBM2Qz7HxIjNkG9IMWMzZA0RQzZD1hAxZTPk80aM2Qz5JhNzNkNWPjFoM2TlM8kz8llmwmfkW9LM2sgaYoZtZA0R0zZTvp7EuM2Ur6czbAhT6hGkIfUM7TdIvYI0pN5D+w1KH0EaGnKG9huUvoI0NCRsCkNqMXgzZeUTkzdLPszE6M2Sz8nL57FtMO/aJ7Jtiyn7TDbK7FPZKLPPZaPMPpmNMvtsNqh8+3Q26Mbt89mosk9oo274jDaqvLwydMPntFHmwytD5pDVRqFDWhulDnltTHo+QmIbM2Q+QmYblR5BGhoSctso9QrSkDpkt1HqkN5GqUN+G5UOCW7UkJDhBqXNvI2rIXMLOW6UegRpSB2y3Ch1SHOj1CHPjVKHRDdKfYb2G6S+gjSkvkP7jVGLeZshK5+YtxmXlB5BGhoyQ/sNSq8gDQ0Jdyuo9BGkoSFnaL9B6itIQ+o7tN8YtRi5mfI5aWZuZOUzQzey8s1wf4JKryANDdlD+w1SH0EaUp+h/QapryANqW9/K+Nn6q8eHHsEMca5Nn+Ig0qPIP2iBdNf+aCcK0i/yLn7EyKU8wjSL3Ke/j4J5byC9Iuctz9+Ajn3R5B+iXMP2/cnwwzb9wdTDtv3kDls30PmsH0PmcP2PWQO2/dQOWzfQzfC9j1TPsL2PXPjCNv3UDls30M3wvY9ZA7b95C5bN9D6LJ9D6nL9j2ULtv30JCyfc+kz7J9zww5y/Y9pC7b95C6bN9D6rJ9D6nL9j2ULtv30JCyfQ+ly/Y9NKRs3zPqq2zfM+qrbN9D6rJ9D6nL9j2kLtv3kLps30Pqsn0Pqcv2PaQu2/eQumzfM+m7bN8zQ+6yfQ+ly/Y9NKRs30Ppsn0PDSnb95C6bN9D6rJ9D6nL9j2kLtv3SHo9yvb9yaTL9j2ULtv30JCyfQ+py/Y9pC7b95C6bN9D6rB9fzPlsH1/MeWwfc+Yt7B9z5i3sH0PmcP2PWQO2/dQOWzfQzfC9j1UDtv30I2wfQ+Vw/Y9dCNs3zPmEbbvGfMo2/cQumzfQ+qyfQ+ly/Y9NKRs30Ppsn0PDSnb95C6bN9D6rJ9z6hn2b5n1LNs30Ppsn0PDSnb91C6bN9DQ8r2PaQu2/eQumzfQ+qyfQ+py/Y9o15l+55Rr7J9D6nL9j2kLtv3kLps30Pqsn0Ppcv2PTSkbN9D6bJ9Dw0p2/dMei/b98yQvWzfQ+qyfQ+py/Y9pC7b95C6bN9D6bJ9Dw0p2/dQumzfQ0PK9j2jPsr2PaM+yvY9pC7b95Dab9+PjSn77fvxYMp++54y++17yuy37ymz376nzH77HiqffvseunH67Xuq7LfvqRt++54q++176obfvqfMfvueMoftewodtu8pddi+h9JX2L6Hhlxh+55Kh+17akjYvqfUYfueUofte0odtu8pddi+p9Jh+54aErbvofQdtu+hIXfYvqfUYfueUofte0odtu8pddi+p9Rh+55Sh+17Sh227yl12L5n1PsjbN8z6v0Rtu+pdNi+p4aE7XsqHbbvqSFh+55Kh+17akjYvqfUYfueUofte0i9he17SL2F7XsqHbbvqSFh+55Kh+17akjYvqfUYfueUofte0odtu8p9e37bygMdBezN78pD6a8+f4bZB5eGTJP33+DzMsrQ+bd99+g8uGVoRun779B5csrQzdu339jymLk5nJuiImbWzIPrwyZZ2i/QegVpCH1HtpvUPoI0tCQM7TfoPQVpKEhd2i/MWoxb/NFmlGbS1CHpB5BGlLP0H6D0itIQ0P20H6D0keQhoacof0Gqa8gDanv0H5j1GLeZsg3pJi3GbKGiHmbIWuISbiRzxsTcSPfZOYSlKx85hKUrHzmEpR8lplLUPItaeZtZA0x8zayhoh5mylfT2LeZsrXk5i3mbI8iYGbKYuqmLiZ8mEmRm6mfE6amRtZ+czQjax85hKUfD2ZS1Dy9WQuQcnKZy5ByconJm+WfJiJ0Zsln5Mm7eZX5Z0pH155MeXT998g8+WVIfPt+2+M2RyBcszmBpRUHl4ZujF9/w0qL68M3dh9/w0qH14ZunH6/htkvrwyZL5D+41Bi3mbL9KMWszbbLJ0iHmbTdYOMW+zyeIh5m02WT3EvM2X9hukPoI0pD5D+w1SX0EaUn/5Nn56+/fXH37JCv7DBty/cn/36uOP73+SefP2/aePr77yWccjhMExh45HGYfbmfQQDo3Hcw6V+TjoUJmPgw6V+ThIXebjIHWZj4PUZT4OUpf5OEa9lfk4Rr2V+TgoXebjoCFlPg5Kl/k4aEiZj4PSZT4OGlLm4yB1mY+D1GU+jlGPMh/HqEeZj4PSZT4OGlLm46B0mY+DhpT5OEhd5uMgdZmPg9RlPg5Sh+s0kHo+/NUXKr35Qy1UevjbKlR6+nMoVHr5CyZUOvRZT6Yc+qwHUw59Vsgc+qyQOfRZGfMKfVbGvEKfFSqHPit0I/RZoXLos0I3Qp8VKoc+K3Qj9Fkhc+izQubSZ2XQe+mzMuq99FmhdOmzQkNKnxVKlz4rNKT0WSF16bNC6tJnhdSlzwqpw40NSH2UtiqjPsKNDUodbmxQ6nBjg1KHGxuUOtzYoNThxgalDjc2KHW4sUGpw40NKH2GGxvQkDPc2KDS4cYGNSTc2KDS4cYGNSTc2KDU4cYGpQ43Nih1uLFBqcONDSh9hRsb0JAr3Nig0uHGBjUk3Nig1OHGBqUONzYodbixQanP0I88vn6K97iu0IF8UewOPceXxO5H6DK+KLaFvuKLYiN0El8UC7mKKAzyuEOu4sWUQ64iZA65ipA55CpC5pCrCJlDriJSPh8hV/FmyiFXESqHXEXoRshVhMohVxG6EXIVIXPIVYTMJVcRQpdcRUhdchWZ9FZyFZkhW8lVhNIlVxEaUnIVIXXJVYTUJVcRUpdcRUh9phnN++UJxHefPr4wgnj+bloGjDt+4z3yx+OO53an0cr2g/1uoAZ82HjqBxtlr5j9Phtlr5j9PhtlrxhSl71iSF32iiF12SuG1GWvGEqXvWJoSNkrZtKz7BUzQ2bZK4bSZa8YGlL2iiF12SuG1GWvGFKXvWJIXfaKoXTZK4aGlL1iJr3KXjEzZJW9Ykhd9oohddkrhtRlrxhS+3m3uTFlP+82H0zZz7tRZj/vRpn9vBtk3v28G2Te/bwbVfbzbtQNP+9Glf28G3XDz7tRZT/vRt3w826U2c+7UeYw7wahjzDvBqmPMO9GpcO8GzUkzLtR6TDvRg0J826UOsy7Ueow70apw7wbpb59rB+UFhM2m6xOYsJmyBoiJmyGrCG/m7ARLbuviJM22u9mbkQbrX5Y2Cymvx5hs5j+eoTNYkodNospddgshtRX2CyG1FfYLKbSYbOYGhI2i6l02CymhoTNYiodNoupIWGzmFKHzWJKHTaLIfUdNosh9R02i6l02CymhoTNYiodNoupIWGzmFKHzWJKHTaLKXXYLKbU/vLGRKGC18Nf3piDKfvLG5TZX96gzP7yBmX2lzcos7+8QZX95Q3qhr+8QZX95Q3qhr+8AZU3f3kDurH5yxuU2V/eoMzh8gaFDpc3KHW4vEGlw+UNaki4vEGlw+UNaki4vAGpR7i8AalHuLxBqcPlDUodLm9Q6XB5gxoSLm9Q6XB5gxoSLm9Q6nB5g1KHyxuQeobLG5B6hgk5Sh0m5Ch1mJCj1GFCjlKHCTlKHSbkKHWYkKPSYUKOGhIm5KD0ChNy0JAVJuSodJiQo4aECTlKHSbkKHWYkKPUYUKOUocJOSodJuSoIWFCDkrvYUIOGrKHCTlKHSbkKHWYkKPUYUKOUocJuZ0phwm5xZTDhBxkDhNykDlMyDHmI0zIMeYjTMhB5TAhB90IE3JQOUzIQTfChBxUDhNy0I0wIQeZw4QcZC4Tcgz6LBNyjPosE3JQukzIQUPKhByULhNy0JAyIQepy4QcpC4TcpC6TMhB6jIhx6SvMiHHDLnKhByULhNy0JAZ2m+QegVpSL2H9hukPoI0pD5D+w1SX0EaUt+h/caoxbzNkG8yMW8zZOUT8zZDVj4xbzPks0zM2wz5ljTzNrKGmHkbWUNMmo58PZk4Hfl6EvM205WnWwzcTFdUbzFxM5ekHkEaUs/QfoPSK0hDQ/bQfoPSR5CGhpyh/QapryANqe/QfmPUYvRmuefkbXJ1flU+mfLwygdTnr7/BpmXV4bMu++/QebDK0Pm0/ffoPLllaEbt++/MWUxdHM6N8TMzSWVh1eGbkzff4PMyytD5j203yD0EaQh9Rnab1D6CtLQkDu035i0mLfZZPUQ8zZf2m+QegRpSD1D+w1SryANqffQfoPSR5CGhpyh/QalryANDQl3NSD1Cnc1IPUKdzUodbirQanDXQ1KHe5qUOpwV4NSh7salDrc1aDU4a4GpQ53NaD0Hu5qQEP2cFeDSoe7GtSQcFeDSoe7GtSQcFeDUoe7GpQ63NWg1OGuBqUOdzWg9BHuakBDjnBXg0qHuxrUkHBXg1KHuxqUOtzVoNThrgalDnc1fqb+qtgVxCDn7U92QOkz3CN+0YIzXCCmnCNIv8g5/aERyrmC9Iucu79hQjmPIP0i5+nPo1DOK0i/yBm271H05n2F7fuLKYfte8gctu8hc9i+h8xh+x4yh+17qBy276EbYfseKofte+hG2L5nynfYvmdu3GH7HjKH7XvIXLbvIXTZvofUZfseSpfte2hI2b6H0mX7HhpStu8R9fZ4lPX7G2qX/XvKXRbwKXfZwKfaZQWfelJ28Kl2WcKnnpQtfMpd1vApd9nDh9xbWcSH3FvZxKfcZRWfcpddfMpdlvEpd9nGp9xlHZ9yl318ql0W8qknZSMfao+ykg89GWUnn2qXpXzqSdnKp9xlLZ9yl718yl0W8yl32cyn2mU1n3pSdvOh9izL+dCTWbbzKXdZz6fcZT+fcpcFfcrtN/TXBqX9iv56QGm/o4+p/ZI+pvZb+pR6+TV9Sr38nj6W9ov62BC/qY+l/ao+NsTv6mNpv6yPDfHb+pjar+tj6rCvT7H3sLBPufewsY+1w8o+9iTs7GPtsLSPPQlb+5g7rO1j7rC3j7nD4j7mDpv7VPsIq/vUkyPs7mPtsLyPPQnb+5g7rO9j7rC/j7nDAj/mDhv8mDus8GPusMNPuc+wxE+5z7DFj7nDGj/mDnv8WDss8mNPwiY/1g6r/NiTsMuPtcMyP/YkbPNT7ius81PuK+zzY+6w0I+5w0Y/1g4r/diTsNOPtcNSP/YkbPVj7rDWj7nDXj/lvsNiP+W+/Wb/mlDar/avAaX9bj+m9sv9mNpv92Nqv96Pqf1+P5b2C/7YEL/hD6W3h1/xh4ZsD7/jj6X9kj82xG/5Y2q/5o+pw54/xg6L/pg7bPpj7bDqjz0Ju/5UewvL/tSTLWz7Y+6w7o+5w74/5g4L/5g7bPxj7bDyjz0JO/9YOyz9Y0/C1j/lHmHtn3KPsPePucPiP+YOm/+YO6z+Y+6w+4+5w/I/5g7b/5g7rP9j7rD/T7VnCACgnsyQAIC1QwQA9iRkAGDtEAKAPQkpAJg7xABg7pADgLlDEADmDkkAVHuFKADqyQpZAFg7hAFgT0IaAOYOcQCYO+QBYO4QCIC5T9+226H05aUXlL592w5Sm7QcSW3Sciz18NKUevq2HZVeXpoasvu2HZU+vDQ15PRtOyp9eWlqyO3bdpBaDPXcklrM9Hzp2lHsEbQp9wxdO6q9gjb1ZA9dO6p9BG3qyRm6dpT7CtqU+w5dO8htjlYdkttcrbLfeXO2ypYqM9Nj64mZ6bH1RMz0DPtOEzM9wz4vxUzPsC81MdMz7ANTzPQMW0/ETM+w9cTk8th3j0nmsc81c8HK1kFzwsrWQXPDyr7YzBEr+9A0Mz22npiZHltPxEzPtO8qMdMz7btKzPRMW6vEUM+0NVZM9Uz7ZhNjPdO+Nc1cj62DZrDH1kFzz8q+q8xBK/uuMhetZB0c5qSVrINDTPesh+UeQZtyT9+2O6H08tIHlN59245SH16aUp++bUepLy9NqW/ftoPS5qqVNERM9pxWenhpasj0bTsqvbw0NWT3bTtKfXhpSn2Grh3FvoI25b5D1w5qi5mezdYRMdOz2UIiZno2W0nETM+Xrh3lXkGbcu+ha0e5j6BNuc/QtaPaV9Cmntyhawe1zUyPrSdipmfYd5qY6Rn2eSlmeoZ9qYmZnmEfmGKmZ9h6ImZ6hq0nJqnHvntMVI99rpnLV7YOmtNXtg6a21f2xWaOX9mHppnpsfXEzPTYeiJmeqZ9V4mZnmnfVWKmZ9paJYZ6pq2xYqpn2jebGOuZ9q1p5npsHTSDPbYOmjtY9l1lDmHZd5W5hGXroDmFZeugmO5Z9s0mxnuWfWvutz/0Q7mPcI4Ha4frPFh7+LM3WHv6UzVYe/nzMlg75E3eUDrkTV5QOuRNUuqQN0mpQ94kpD5D3iSkPkPeJJUOeZPUkJA3SaVD3iQ1JORNUumQN0kNCXmTlDrkTVLqkjcJsa+SNwm5r5I3SbVL3iT1pORNUu2SN0k9KXmTlLvkTVLukjdJuUveJOUueZNQ+y55k9CTu+RNUu2SN0k9KXmTlLvkTVLukjdJuUveJOUueZOUu+RNUu6SN8m456PkTd5Qu+RNUu6SN0m5S94k1S55k9STkjdJtUveJPWk5E1S7ZI3ST0peZOQeyt5k5B7K3mTlLvkTVLukjdJtUveJPWk5E1S7ZI3ST0peZOUu+RNUu6SNwm5R8mbhNxjC53j6+vHrD+rjdArfllthu7wy2rhDPo31MId9G+oHaHn+7KaTwzYN/jbxScG7A8o7RMDKPX0iQGUevrEAEztEwMwtU8MwNI+MQAb4hMDsLRPDMCG+MQALO0TA7AhPjGAUi+fGECpV0gMwNghMQBzh8QArB0SA7AnITEAa4fEAOxJSAzA3CExAHOHxADKvYfEAMq9h8QArB0SA7AnITEAa4fEAOxJSAzA3CExAHOHxADMHRIDMHdIDKDcR0gMoNxHSAzA3CExAHOHxADMHRIDMHdIDMDaITEAexISA7B2SAzAnoTEAKp9hsQA6skZEgMwd0gMwNwhMQBzh8QAzB0SA7B2SAzAnoTEAKwdEgOwJyExgHJfITGAcl8hMQBzh8QAzO0TA/YJpX1iwD6gtE8MwNQ+MQBT+8QATO0TAzC1Twyg0rdPDKCG3D4xAEv7xABsiE8MwNI+MQAb4hMDMLVPDMDUITEAY4fEAMwdEgOg9nqExADoyXqExACsHRIDsCchMQBzh8QAzB0SAzB3SAzA3CExAGuHxADsSUgMoNpbSAygnmwhMQBzh8QAzB0SAzB3SAzA3CExAHOHxADMHRIDMHdIDMDcITGAco+QGEC5R0gMwNohMQB7EhIDsHZIDMCehMQArB0SA7AnITEAc4fEAMwdEgMo9wyJAZR7hsQArB0SA7AnITEAa4fEAOxJSAzA3CExAHOHxADMHRIDMPft23Ys+nSJ+Z7fpBeU3nzbjlIPL02pp2/bUerlpSn17tt2VPrw0tSQ07ftqPTlpakht2/bQWkx1nNJQ8RUz22ph5em1DN07Sj2CtqUew9dO6p9BG3qyRm6dlT7CtrUkzt07SC3mOn5og25zdWsw3KPoE25Z+jaUe0VtKkne+jaUe0jaFNPztC1o9xX0Kbcd+jaQW4x0zPsA1PM9AxbT8RMz7D1xFzNsu8eczXLPtfM1SxbB83VLFsHzdUs+2IzV7PsQ9PM9Nh6YmZ6bD0RMz3TvqvETM+07yox0zNtrRJDPdPWWDHVM+2bTYz1TPvWNHM9tg6awR5bB83VLPuuMlez7LvKXM2yddBczbJ1UEz3LPtmE+M9y741b58NuZ9Q2mdD7geU9tmQmNpnQ2Jqnw0JqfeHz4aE1PvDZ0NiaZ8NiQ3x2ZBY2mdDYkN8NiSW9tmQ2BCfDYmpfTYkpg7ZkBR7C9mQlHsL2ZBYO2RDYk9CNiTWDtmQ2JOQDYm5QzYk5g7ZkJg7ZENi7pANSbVHyIaknoyQDYm1QzYk9iRkQ2LukA2JuUM2JOYO2ZCYO2RDYu6QDYm5QzYk5Z4hG5Jyz5ANiblDNiTmDtmQWDtkQ2JPQjYk1g7ZkNiTkA2JtUM2JPYkZENS7hWyISn3CtmQmDtkQ2LukA2JtUM2JPYkZENi7ZANiT0J2ZCYO2RDYu6QDUm595ANSblNas+v0jeUHl76gtLTt+0o9fLSlHr3bTtKfXhpSn36th2Vvrw0NeT2bTsoLQZ7TmmImOu5rPTw0tSQ6dt2lHp5aUq9h64dxT6CNuU+Q9eOal9Bm3pyh64d1BYzPZutJGKm50vXjnKPoE25Z+jaUe4VtCn3Hrp2VPsI2tSTM3TtqPYVtKknd+jaQW4x0zPs81LM9Az7UhMzPcM+MMVMz7D1RMz0DFtPTFKPffeYqB77XBMzPcPWQTHTM2wdFDM9w77YxEzPsA9NM9Nj64mZ6bH1RMz0TPuuEjM9076rxEzPtLVKDPVMW2PFVM+0bzYx1jPtW9PM9cg6eJjBHlkHDzHZM2+rPYI29WSGrh3lXkGbcu+ha0e5j6BNuU9/LeZn7q+rXUGNkt7+Eg3V3sJF9Jdd2MINdEw6gvbLpNNf0MGk4TrPN0jDdR5MegTtl0lPf/kHk15B+2VSnxhwsOjTY/jEgOMBpX1iAKb2iQGY2icGYGqfGICpfWIAlvaJAdgQnxiApX1iADbEJwZQ6ekTA6gh0ycGYGqfGICpQ2IAxg6JAZg7JAZg7ZAYgD0JiQFYOyQGYE9CYgDlXiExgHKvkBiAuUNiAOYOiQFYOyQGYE9CYgDWDokB2JOQGIC5Q2IA5g6JAZR7D4kBlHsPiQGYOyQGYO6QGIC5Q2IA5g6JAZg7JAZg7pAYgLVDYgD2JCQGUO0jJAZQT46QGIC1Q2IA9iQkBmDukBiAuUNiAOYOiQGYOyQGYO2QGIA9CYkBVPsMiQHUkzMkBmDukBiAuUNiAOYOiQGY2ycGHBNK+8SAY0BpnxiAqX1iAKb2iQGU+vKJAZT68okBWNonBmBDfGIAlvaJAdgQnxiApX1iADbEJwZgap8YgKlDYgDFvkNiAOW+Q2IA1g6JAdiTkBiAtUNiAPYkJAZg7pAYgLlDYgDmDokBmDskBkDt8xESA6An5yMkBmDtkBiAPQmJAZg7JAZg7pAYgLlDYgDmDokBmDskBmDukBhAubeQGEC5t5AYgLlDYgDmDokBWDskBmBPQmIA1g6JAdiTkBiAtUNiAPYkJAZQ7hESAyj3CIkBmDskBmDukBiAtUNiAPYkJAZg7ZAYgD0JiQGYOyQGYO6QGEC5Z0gMoNzTJwYcO5T2iQHHgtI+MQBT+8QATO0TAzC1TwzA1D4xAEv7xABsiE8MoNLLJwZQQ5ZPDMDSPjEAG+ITAzC1TwzA1CExAGOHxADMHRIDsHZIDMCehMQAqr2HxADqyR4SAzB3SAzA3CExAHOHxADMHRIDsHZIDMCehMQArB0SA7AnITGAch8hMYByHyExAHOHxADMHRIDMHdIDMDcITEAc4fEAMwdEgMwd0gMwNwhMYBqnyExgHpyhsQArB0SA7AnITEAa4fEAOxJSAzA3CExAHOHxADMHRIDMHdIDKDaV0gMoJ5cITEAa4fEAOxJSAzA3CExAHOHxADMHRIDMPfp23YnlL689AGlb9+2g9QmXkdSm3QdSz28NKWevm1HpZeXpobsvm1HpQ8vTQ05fduOSl9emhpy+7Ydo77EUM/tqC8x0/Ola0exR9Cm3DN07aj2CtrUkz107aj2EbSpJ2fo2lHuK2hT7jt07SC3uZp1SG5zNct+583VLFuqzEyPrSdmpsfWEzHTMzbLfQRtyn2Grh3lvoI25b5D1w5yi5meYeuJSeo5LfcI2pR7hq4d5V5Bm3LvoWtHtY+gTT05Q9eOal9Bm3pyh64d1BYzPdO+q8RMz7S1Sgz1TFtjxVTPtG82MdYz7VvTzPXYOmgGe2wdNFez7LvKXM2y7ypzNcvWQXM1y9ZBMd2z7JtNjPcs+9Y0qT2/St9QennpC0rvvm1HqQ8vTalP37aj1JeXptS3b9tBaXMuSxoiJntOKz28NDVk+rYdlV5emhqy+7YdpT68NKU+Q9eOYl9Bm3LfoWsHtcVMz2briJjp2WwhETM9m60kYqbnS9eOcq+gTbn30LWj3EfQptxn6NpR7StoU0/u0LWD2mamx9YTMdMz7DtNzPQM+7wUMz3DvtTETM+wD0wx0zNsPREzPcPWE5PUY989JqrHPtfM1SxbB83VLFsHzdUs+2IzV7PsQ9PM9Nh6YmZ6bD0RMz3TvqvETM+07yox0zNtrRJDPdPWWDHVM+2bTYz1TPvWNHM9tg6awR5bB83VLPuuMlez7LvKXM2yddBczbJ1UEz3LPtmE+M9y74179vfAYLc9yPc6sHa4XIP1h7+Hg7Wnv6CDdZe/uYM1vZ5k+cGpX3e5PmA0j5vEkv7vElsiM+bpNKbz5ukhmw+bxJL+7xJbIjPm8TSPm8SG+LzJrG0z5vEhvi8SUzt8yYxdcibpNgj5E1S7hHyJrF2yJvEnoS8Sawd8iaxJyFvEnOHvEnMHfImMXfIm8TcIW+Sas+QN0k9mSFvEmuHvEnsScibxNwhbxJzh7xJzB3yJjF3yJvE3CFvEnOHvEnKvULeJOVeIW8Sa4e8SexJyJvE3CFvEnOHvEmsHfImsSchbxJrh7xJ7EnIm6Tce8ibpNx7yJvE3CFvEnOHvEmsHfImsSchbxJrh7xJ7EnIm8TcIW8Sc4e8Scp9hLxJyn1svnP8s/bX1YbvFX9Dbfru8DfUwn30b6iF++jfUDt8z/cbaj4x4Jzwt4tPDDgHlPaJAVT69IkB1JDTJwZgaZ8YgA3xiQFY2icGYEN8YgCW9okB2BCfGIClfWIANsQnBlDqyycGUOorJAZg7JAYgLlDYgDWDokB2JOQGIC1Q2IA9iQkBmDukBiAuUNiAOW+Q2IA5b5DYgDWDokB2JOQGIC1Q2IA9uTL9/LzI/L1h18ek3/Yi/1X8u9effzx/U8yb96+//Tx1dc/7DAfNp78sNJPpb8ipZ9Kf0VKPxVxj8ej9FMn1C79VKpd+qnUk9JPpdyln0q5Sz+Vapd+KvWk9FOpdumnUk9KPxVyb6WfCrm30k+l3KWfSrlLP5Vql34q9aT0U6l26adST0o/lXKXfirlLv1UyD1KPxVyD3+/59yhtL/fcy4o7e/3YGl/vwcb4u/3YGl/vwcb4u/3YGl/vwcb4u/3UOnp7/dQQ6a/34Ol/f0ebIi/34Op/f0eTB3u92DscL8Hc4f7PVg73O/BnoT7PVR7hfs91JMV7vdg7nC/B3OH+z2YO9zvwdymF7R9o6D8cXvm84cdqfG0v/xh7z59fPnTTvNpjyd/tCu1ueqPFjIo6e+2PWRQ0t9te8igxNwhgxJzhwxKrB0yKLEnIYMSc4cMSswdMiixdsigxJ6EDEqqfYQMSurJETIoMXfIoMTcIYMSc4cMSswdMiixdsigxJ6EDEqsHTIosSchg5JynyGDknKfIYMSc4cMSsztMyjPE0r7DMrzgNI+gxJL+wxKbIjPoMTSPoMSG+IzKKn05TMoqSGXz6DE0j6DEhviMyixtM+gxIb4DEpM7TMoMXXIoMTYIYMSc4cMSqp9hwxK6skdMiixdsigxJ6EDErMHTIoMXfIoMTcIYMSc59h+5RyX0Gbct9h+5Rxb2YySL5KNjMZtFvuEbQp9wxdJMq9gjbl3kMXiWofQZt6coYuEuW+gjblvkMXCWqbySBZTzYzGTSt9gja1JMZukiUewVtyr2HLhLlPoI25T5DF4lqX0GbenKHLhLUFpNBU/4jySYmg6atg2I0aNo6KGaD1sNyr6BNuUPW3Q2lQ9bdBaVD1h2VDll31JCQdQelZ8i6g4bMkHVHpUPWHTUkZN1R6ZB1Rw0JWXdUOmTdUUNC1h2lDll3lLpk3UHsVbLuIPcqWXdUu2TdUU9K1h3VLll31JOSdUe5S9Yd5S5Zd5S7ZN1R7jtNYt1pgmgzUz72lbKH+yPUpd9N+ZihrupSuEiCXQoXSbBL4SIJ5g4XSTB3uEiCucNFEswdLpJQ7SNcJKGeHOEiCeYOF0kwd7hIgrXDRRLsSbhIgrXDRRLsSbhIgrnDRRLMHS6SUO4zXCSh3Ge4SIK1w0US7Em4SIK1w0US7Em4SIK5w0USzB0ukmDucJEEc9+6RXZtTFpM//wm/YDSm26RYenhpakhU7fIsPTy0tSQXbfIsPThpakhp26RYenLS1NDbt0io9Ji9OeShojJn9tSDy9NqafvkGHsFbQp9+47ZFj7CNrUk9N3yLD2FbSpJ7fvkEHuIeZ+vmhvUHvzHTLMPYI25Z4+Jwxrr6BNPdl9ThjWPoI29STM42HuMI+HucM8HuXewjwe5d7CPB7mDvN4mDvM42HuMI+HucM8HtYO83jYkzCPh7nDPB7mDvN4VHuEeTzqyQjzeFg7zONhT8I8HuYO83iYO8zjYe4wj4e5wzwe1g7zeNiTMI9HtWeYx6OezDCPh7nDPB7mDvN4mDvM42Hu3V+a+Jn762pHUKOkp79igbWvoP2yC7e/kEFJ1yNov0i6Nn99A5OGS8/fIA23nTHpCtovk+7+aggmDRdJvkHqL5JcE4L6iyTXgNL+IgmV3v1FEmrI7i+SYGl/kQQb4i+SYGl/kQQb4i+SYGl/kQQb4i+SYGl/kQQb4i+SUOrDXySh1Ee4SIKxw0USzB0ukmDtcJEEexIukmDtcJEEexIukmDucJEEc4eLJJT7DBdJKPcZLpJg7XCRBHsSLpJg7XCRBHuyh4495T6CNuU+Q8eecl9Bm3KH/EjKfYX8SMp9hfxIzB3yIzF3yI/E2iE/EnsS8iMxd8iPxNwhPxJrh/xI7EnIj6Tad8iPpJ7cIT8Sc4f8SMwd8iMxd8iPxNwhPxJrh/xI7EnIj8TaIT8SexLyIyH3fIT8SMg9HyE/EnOH/EjM7fMjrx1K+/zIa0Fpnx+JpX1+JDbE50diaZ8fiQ3x+ZFUevP5kdSQzedHYmmfH4kN8fmRWNrnR2JDfH4kpvb5kZg65Edi7JAfiblDfiTVHiE/knoyQn4k1g75kdiTkB+JuUN+JOYO+ZGYO+RHYu4zdO2o9hW0qSd36NpBbTF/M2w9mSFDAHOPoE25Q2IA5g6JAZg7JAZg7pAYgLlDYgDmDokBmDskBlDtFRIDqCcrJAZg7pAYgLlDYgDWDokB2JOQGIC1Q2IA9iQkBmDukBiAuUNiAOXeQ2IA5d5DYgDWDokB2JOQGIC1Q2IA9iQkBmDukBiAuUNiAOYOiQGYOyQGsJjReYTEgANKh8QAKh0SA6ghITGASofEAGpISAyg0iExgBoSEgOodEgMoIaExAAofYbEAGjIGRIDKHVIDKDUJTGAYpfEAMpdEgOodkkMoJ6UxACqXRIDqCclMQByXyUxAHJfJTGAcpfEAMpdEgOodkkMoJ6UxACqXRIDqCclMYByl8QAyl0SAyD3XRIDIPddEgMod0kMoNwlMYByl8QAyl0SA6h2SQygnpTEAMpdEgMod0kMYNrrURIDTqhdEgOodkkMoJ6UxADKXRIDKHdJDKDcJTGAcpfEAKpdEgOoJyUxAGpvJTEAerKVxADKXRIDKHdJDKDcJTGAcvsLPtcNpf0Fn+uC0v6CD5b2F3ywIf6CD5Ue/oIPNWT4Cz5Y2l/wwYb4Cz5Y2l/wwYb4Cz5Y2l/wwYb4Cz6Y2l/wwdThgg/FnuGCD+We4YIP1g4XfLAn4YIP1g4XfLAn4YIP5g4XfDB3uOCDucMFH8x9h64d1DaXtWypMjM9tp6YmR5bT8RMz7DvNDHTM+zzUsz0DPsIFDM9w74CxUzPsPVEzPQMW09MUo9995ioHvtcM3e0bK0SMz3D1lhzNcu+2MzVLPvQNDM9tp6YmR5bT8RMz7TvKjHTM+27Ssz0TFurxFDPtDVWTPVM+2YTYz3TvjXNXI+tg2awx9ZBczXLvqvM1Sz7rjJXs2wdNFezbB0U0z3LvtnEeM+yb02T2vP/pe8NSg8v/YDSU7ftsPTy0tSQXbftsPThpakhp27bYenLS1NDbt22o9RisOeU1GKu57LUftoOS08vTQ3xu85YevddO+zIEbQp9+m7dpj7CtqU+/ZdO8p9h1k7rL0FbejJHbadsfb0XTvsyQralHv3XTvMfQRtyn36rh3mDrN2WPsO2syT/RG2nbH25rt20JNdzPSMYbmn79ph7hW0Kffuu3aY+wjalPv0XTusfQVt6sntu3aU21zNkg/N3cz02HpiZno2yx1m7TD38h1BrB22nbEnR/CEap++a4c9uYI25b59145ym8EeW2NHmLXD3MN3BLF22HbGnqzgCdXefdcOe3IEbcp9+jtAmDvc6sHa4XIP1Z4Pfw8Ha2/+gg3WHv7mDNb2eZP3hNI+b/IeUNrnTWJpnzeJDfF5k1ja501iQ3zeJJVePm+SGrJ83iSm9nmTmDr0YCn18tKU2k/AYmo/AYupQ94kxg55k5g75E1S7j3kTVLuvXRgKfcI2pQ7zMBi7jADi7lD3iTmDnmTmDvkTWLukDeJuUsHFnKLmZ5hn2lHmIHF3GEGFnOHvEnMHfImMXfIm8TcIW8Sc4e8Scwd8iYxd8ibpNpnyJuknpwhbxJzh7xJzB3yJjF3yJvE3HvoklLu0oGl3GEGFnOHGVjMHfImKfcV8iYp9xXyJjF3yJvE3DN0SSl36cBS7jADi7nDDCzmDnmTmDvkTWLuO3SOxwsXrvf7EXrFL6ttoTv8slq4j/4NtXAf/RtqK/R8X1bziQE3iz7db58YcC8o7RMDsLRPDMCG+MQAKH08fGIANOR4+MQALO0TA7AhPjEAU/vEAEzt7/Ngan+fB1P76+iY2l9Hx9QhMYBibyExgHJvITEAc4fEAMwdrvNg7nCdB3OH++iYO9xHx9whMQBzh8QAzB0SAyj3CIkBlHuE6zyYO1znwdzhPjrmDvfRMXdIDMDcITEAc4fEAMwdEgMw95fv5ed/2Hj94Zd/6PjDXuy/qn/36uOP73+SefP2/aePr776YTNECFCTZogQoCbNECGAuaf5Bbie/AUImQL4BwmZAvgXIGQKYO5wvwdzh/s9mDtcUKfcK1xQp9wrZApg7pApgLlDpgDmDpkCmDvc78Hc4X4P5g4X1DF3uKCOuUOmAOXeQ6YA5d5DpsAJpUOmwAGlQ6YAlQ6ZAtSQkClApUOmADUkZApQ6ZApQA0JmQKQ+giZApD68Bd8MHXIFKDU/n46pg6ZApS6ZApQ7JIpQLlLpgDlLpkClDvc76HcZ8kUgNxnuKCOuUumAOUumQKUu2QKUO6SKUC5S6YA5Q73ezB3yRSg3OGCOuW+SqYA5L5KpgDlLpkClLtkClDukilAucP9Hqwd7vdgT87QRaLcV9Cm3CE9knLfIT2Sct/hfg/mDvd7MPcMXSTKvYI25d5DF4lyH0Gbcof0SMwd0iMxd7jfA7nPR7jfA7lPM/vzsNwjaFNu869Kfiuyd/k3JecjLDNf8MfYxY8xn/wxDvNvl578rDC+Ry0L685U2vwL0PWcQ1vYf4Y/xu/mh/74xzif/DHCQjT9McxX/H7yx1jis64nPyuMAFLLwso0lT5NwX08aVHZoaY/iPmSb0/W3FGWquEPMszX/EuDK/4gw3zYk7VxlEFC6lpZu6ba5k/zLy2waFLZw6Y/iPqyP1l7R1nMpj+IGml68p34u5Em8GFPlshZhhGha7OsblNtNeP05DN0ll1u+oOUXW6qrZ7qT5b2eaaxv+vlD3v36ePLn1YCN6lt6tv+ZP1dj2Rb/LAtTQbGX6M10qfFH63sjMPfEMs86+eT5X+VJXL6gxyhxUm1zfd/PlmRfzdtBT7sydf3Kmvm0LXdfP3nkw/iveyd0x/EfNnnk3VsL4vo9AdZoU1KtVWf7smKuJs//eeTr++9rKpT18yXfT35IN7L7jq733QeZZOdape9dqpdttypdtl5p9plA/4r2v/53as3H1//12eZv37/6fX7D2/e/vQb7/u/fP4d+Pl/+x+fP/Tf/uP7d3/73//2H59/S/7w+S/9n9cffvj5792Pca/73te2xti2f/7z/wG7Oxez

My plan is to put my mall and non-science assemblies on the right side of my bus, and science assemblies on the left side of the bus.

For a mall, I both like and dislike Modular mall by pletiplot,

What I like about it is that it is modular, and if I were going to build a mall by myself, this is the style of design I would use. Pletiplot credits Rahbek with the initial design.

What I don’t like about it is that it uses interleaved red and yellow belts. I cannot simply point the Upgrade Planner at it and switch out yellow for red, or red for blue.

But I really do like the modularity of it. There are a couple of tweaks that need to be done to it for Factorio Space Age: the recipe for medium electric poles now needs copper wire, where before it copper plate (for example).

But I like that I can set up a modular iron gears factory, feed those onto the bus, and then as the need for gears grows, I can add capacity to the gear factory, without having to re-do the mall, or add another gears segment to it.

I was watching PoisonTaco on Rumble play Factorio: Space Age, and maybe I shouldn’t be doing a mall at all.

Manjaro fresh install – oof, things changed

I’m playing the new Factorio Space Age game, and so far I like it. One thing that has bothered me though is that it is not as smooth on Manjaro as it was on OpenSuSE. So I went looking for tweaks to fix things, and even get to a point where gamemode doesn’t work (cannot adjust CPU speed), and that may be due to a missing BIOS upgrade. Wow, talk about going down the rabbit hole.

Previously, I would install an OS, then mount my second hard drive as /home, and reboot. With this process, all the software I install later is pre-configured: they already have their config files in place from the previous OS.

One of the changes I made was to switch from legacy BIOS mode to UEFI BIOS mode. So I thought that a complete fresh installation of Manjaro was the best chance for success.

I did install some software prior to mounting my second hard drive as /home.

Things went pretty well, except for one thing: Manjaro uses Z shell (Zsh) instead of bash. Man, Zsh broke a lot of the terminal I use (Konsole).

When I tried to uninstall Z shell in the package manager, it barked at me with “removing zsh breaks dependency 'zsh' required by manjaro-zsh-config

Okay, I uninstalled manjaro-zsh-config first.

Then trying to uninstall Z shell barks at me with “removing zsh breaks dependency 'zsh' required by manjaro-kde-settings“. Sigh. This will likely get rid of more than I’d like it to, but here I go….

Although I have successfully uninstalled Z shell, my terminal key bindings are still all fucked up. The <home> key doesn’t take me to the beginning of the line; the <end> key doesn’t take me to the end of the line. Sometimes the <end> key inserts a tilde (the ~ key).

Logged in as root, this sets me back to (a) default:

cat > /etc/inputrc << "EOF"
# Begin /etc/inputrc

# Make sure we don't output everything on the 1 line
set horizontal-scroll-mode Off

# Enable 8bit input
set meta-flag On
set input-meta On

# Turns off 8th bit stripping
set convert-meta Off

# Keep the 8th bit for display
set output-meta On

# none, visible or audible
set bell-style none

# All of the following map the escape sequence of the
# value contained inside the 1st argument to the
# readline specific functions

"\eOd": backward-word
"\eOc": forward-word

# for linux console
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

# End /etc/inputrc
EOF

Bad news is, I’m still getting nothing for the <home> key, and a tilde for the <end> key.

And I cannot tell why. Clearly, something other than /etc/inputrc and ~./bashrc are at play here.

I did get switched to Wayland, instead of X11. Factorio does seem smoother now. That is what I really wanted.

A web page, scrolling quickly (Firefox on Amazon), did spontaneously crash to reboot. Oof, that’s bad. Thankfully, I didn’t have anything else running which suffers from catastrophic failure of a spontaneous reboot.

Turned off IPv6 in parts of my systems

I wanted to title this “IPv6 still not viable” but really this is a complex problem of spam, my hosting provider Linode, Comcast, and Spamhaus.

My hosting provider supplies both IPv4 and IPv6 on every machine I spin up. That was fine, until it wasn’t.

I run my own mail server. I’ve been doing SMTP mail for twenty years (more, really) and I am careful to not let anyone randomly relay through my server. I even had to shut down comments on this blog because script kiddies were abusing the new-user-signup process to annoy random people with new-user-spam emails. That was months ago.

I’ve done my due diligence and have SPF and DKIM set correctly. I regularly check with https://www.mail-tester.com/ to make sure everything is still good, and I routinely get a score of 10 out of 10.

Yet, recently Comcast has been refusing to send my email to my friends, because of Spamhaus. Spamhaus says the IPv6 range I am in is populated by spammers.

Linode must have (or had) a customer who was a spammer in the same data center I was in. So in a large part, my problem stems from Linode. I can understand that Linode might have a new customer who tried setting up a mail server, botched the anti-spam part of it, and legitimately got put on an anti-spam list or twenty, including Spamhaus.

Apparently, Linode puts everyone in a data center in the same huge IPv6 range using something called SLAAC. There are Linode community posts going back nine years about Comcast blocking email because Spamhaus and Linode cannot agree on the correct sizing of a customer’s address space within a SLAAC addressed network.

Spamhaus refuses to pick and choose which addresses in the range are violators – it just blocks the whole range.

So I am getting blocked by neighborhood association.

I don’t know if this is Linode’s fault for making the range too large, or Spamhaus’ fault for not being granular. Or if it is Linode’s fault for not policing the spam behavior of its customers. No matter: I can’t email my volunteer service friends the monthly reports, meeting minutes, or even personal email if the email goes out over the IPv6 address.

So the IPv6 network had to go.

It is done.

And it was not easy. My mail host now whines about not being able to get Ubuntu updates. I want to move it to Debian anyway, but this rushes that project.

And here on my home network, things really didn’t work right, with IPv6 present here but not working on the mail server out in Linode lan(d). Thunderbird was throwing a hissy fit for a few days. So then I had to reconfigure everything here at home to be IPv4 only. That was a lot of work.

But at least at the end of it, if a service like Comcast (or anyone else) puts me on an anti-spam list, I’ll only have the single IPv4 address to get unblocked.

I kind of feel bad. I have a friend who is a huge proponent of IPv6, and he now works for Google, and probably one of the things that got him hired was the advocacy work he did for this cause. And I like the idea of IPv6.

Here’s a mild tangent: way back when, Novell had a networking technology called IPX/SPX. For addressing, it used a 32 bit chunk concatenated with a 48 bit chunk: the first 32 bits were the network address and the last bits were from the machine’s MAC address. On local networks, it was speedy, and didn’t use a lot of memory, which is why many LAN games ran over it. Some of my most fun ever was playing Command & Conquer: Generals with my sons over IPX/SPX.

As the Internet was taking off, it was clear that TCP/IP in IPv4 was the way everyone was connecting their local network to the Internet. IPv4 could do NAT (network address translation). In fact, it required address resolution protocol (ARP), which made it slower than IPX/SPX. Some people at Novell went to some working group, and suggested that the Internet could carry IPX/SPX traffic too: they got laughed at. “No, we’re not going to add IPX/SPX to the Internet”. (The NAT problem was solved in IPX/SPX networks with gateways).

Anyway … care to guess what the IPv6 address space is? Could it happen to be 64 bits for the network address and 64 bits from the machine’s MAC address?

Yes, as a matter of fact in substantial ways, IPv6 is IPX/SPX grown to 128 bits. And people like it because it is speedy. Everything old is new again.

Firefox temporary containers fix

about:addons

Temporary Containers > Disable

Try the operation again; this time you’ll get still the wrong container, but at least the URL is in the location bar. Click the Firefox Multi-Account Containers icon in the extensions bar, and choose “Always open this site in …”

Temporary Containers > Enable


Unfortunately, there isn’t a way (at least that I can tell) to edit which websites are to be opened with which containers. The only way to change the map is via the Firefox GUI. This leads to broken behavior.

What I’m saying is that I cannot simply open a file and type in a host.domain combination into the “Always open this site in …” database or policy or JSON or whatever.

For example, I want a particular type of pant clothes hanger. Amazon has a hundred different items with the cheap plastic clip which breaks when I try to hang denim. They have a single item where the clip that supplies the leverage on the clamp is metal. When the fabric is thick, like denim, the plastic clips snap like dry twigs. So I want the old-fashioned metal hangers, only.

But I’m not going to pay Amazon’s stupid price of $7 per clothes hanger. Go kick rocks, you fools.

Okay, so eBay is the answer. I found what I wanted, they came in at $2 each: great! I want to sign in to pay.

Temporary Containers says that’s a nope.

Here’s the deal: I was able to add signup.ebay.com to an assigned container. It was the first site I was on, and the webpage patiently waited for me to sign in, so I could click the “Always open this site in …” menu item.

Similarly, I was able to add www.ebay.com to the same container. But I’d never been able to get to pay.ebay.com added, because to get there, you have to authenticate, first, and then be redirected in. The password login website was in the correct container, but pay.ebay.com was not. And because it was not, it didn’t get the cookies required to prove that I’d typed in my password correctly.

Because I’d never been able to visit pay.ebay.com, I’d never been able to add it to “Always open this site in …”

I can’t get there because it opens in the wrong container. I can’t add it to the right container because I have to get there first. It’s a Catch-22.

To me, the best answer would be for me to be able to edit the list of which host.domain pairs get mapped to which container. It kind of kills me that I can see which domain Firefox is trying to redirect to: pay.ebay.com. I can copy it to the clipboard; where can I paste it in? Ugh: nowhere.

Apparently manual edits are not at all easy, because containers have ID’s, but the policies that move webpages there don’t track the ID’s, or something like that. All I really know is that this has been a problem for a really long time, and the plugin author has said that this is a more difficult problem than one might surmise. I can believe that.

So the answer is to temporarily disable the Temporary Containers plugin, and then do the management of Firefox Multi-Account Containers. Hence, the quick shortcut to get to Firefox extension management.

Anyway, my high quality, old, hangers at $2 each are now on their way. 🙂

Ballot Measures: Just Vote No

If it was such a great idea, your representatives would have voted in favor of it, passed it, and then told you how great they are for getting it passed.

The only reason the ballot measure is being put in front of you is because when given the opportunity to put their name on it, your representatives shuddered at the idea and opted-out.

If this terrible idea passes, it’s your fault, not theirs.

That I am aware of, there was a single ballot measure that was a good idea: California’s Proposition 13 of 1978.

Prop 13 limited the taxes that the government could collect, so zero representatives were going to vote in favor of it: it had to come from the voters and be put in front of the voters. Governor Jerry Brown was warning everyone ahead of the election about what a disaster it would be, if it passed.1 It turned out to be the best idea ever.

Why was it the best idea ever? Because it limited taxes to a stable metric: property values. Before Prop 13, collected taxes were highly variable both by time and location. After Prop 13, Sacramento knew with high precision how much money was going to be coming in.

That didn’t stop the bureaucrats from spending foolishly; but it did remove the excuse that they overspent because revenues fell short this year. They overspent because they wanted to overspend.

Anyway, when your ballot has measures on it for you to approve, and they aren’t a grassroots movement to limit government reach, just vote no.

  1. After the election and it passed with an overwhelming majority, Jerry Brown tried to claim he was in favor of it all along, adding evidence to the old adage: “How do you know when a politician is lying? His lips are moving.” ↩︎

Proxmox copy of WordPress virtual machine – changing the siteurl

I’ve gone into Proxmox and cloned a WordPress machine to a new machine. I configured DNS and DHCP to assign a new host name for the machine; now I need to get WordPress to understand that too.

Because WordPress stores the site URL inside the database, this means running a MySQL query.

The problem is that the old WordPress site (because that is what is in the new machine’s database) keeps telling Apache to serve up the pages from the old machine. So everything on the new machine will need to resolve at https://tratest.example.com but because WordPress is going to its database to find out where everything is, as soon as the page loads, it tries to go to https://aawp.example.com

That machine is powered off in Proxmox, so obviously nothing works.

Can’t really use any tools inside WordPress to do the search-and-replace, so I need something outside of WordPress. I generally do not install phpMyAdmin, because 1) it is extra work to configure Apache to serve up a different website just for this one function, and 2) that becomes just one more place a bored 14 year old might try to break in. If I don’t need it, why put it out there?

So let’s try some MySQL queries from the command line.

UPDATE wp_options SET option_value = replace(option_value, 'https://aawp.example.com', 'https://tratest.example.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Nice! I did a restart of Apache, and now the new machine at the new domain name serves up the content from the cloned machine. I know that this worked because the old machine in Proxmox is still powered off.

There are also several other changes I made:

  • hostnamectl set-hostname tratest.example.com
  • edited /etc/hosts and copied the 127.0.1.1 entry to 127.0.2.1 and added the new host name, per Change host name and domain
  • edited the Apache .conf file in /etc/apache2/sites-available/ and replaced the ServerName entry