The Infinite Zenith

Where insights on anime, games, academia and life dare to converge

Defense and Multi-Agent Reinforcement Learning in Bofuri: A Whole-series Review and Recommendation

“Yeah. It takes us a while to get any traction, I’ll give you that one. But let’s do a head count, here: an invincible shield maiden, a lightning-fast swashbuckler, an elegant samurai, some dude who’d died and came back a thousand times, a master crafter, a genius mage with stunning puzzle solving skills, and two hammer-wielding brawlers. And you, big fella, you’ve managed to piss off every single one of them.”

“That was the plan.”

“Not a great plan. When they come, and they will, they’ll come for you.”

“I have an army.”

“We have a Maple.”

–Tony Stark and Loki, The Avengers

Kaede Honjō is a high school student who is introduced to New World Online (NWO), a VRMMORPG, on a recommendation from her best friend, Risa Shiramine. While an absolute novice in games, Kaede spins up her character, Maple, and begins exploring the world. Because she fears sustaining damage, Maple invests all of her skill points into vitality, and while her build initially appears ill-suited for NWO, she begins exploring uncommon ways of making things work. After Risa passes her exams, she joins Maple as Sally and decides to specialise in a swashbuckler class that maximises agility. During the course of exploring NWO, Maple and Sally participate in several events that bolster their infamy, and they create Maple Tree, a guild of a similarly eclectic members that Maple and Sally had met in their adventures, each with their own unique skill sets and roles. Word of Maple’s guild results in a highly spirited guild-based event, and in the aftermath, celebrate a time well-spent with their new-found friends from rival guilds. The game’s administrators, having long been concerned with Maple’s ascent, decide to leave her be, since she’s become a powerful advertising tool for the game, encouraging players to pick NWO up to either team up with her and explore, or otherwise power-level with the hope of besting her in PvP one day. This is Bofuri: I Don’t Want to Get Hurt, so I’ll Max Out My Defense (Japanese title Itai no wa Iya nano de gyoryoku ni Kyokufuri Shitai to Omoimasu, Bofuri for brevity), an anime from the Winter 2020 season that has its origins as a series of stories posted to Shōsetsuka ni Narō in 2016 and published as a proper light novel in September 2017. Bofuri‘s success comes from its unorthodox execution; the very things that makes Maple successful as a player makes the anime successful as a series, and much as how Maple combines common techniques in curious ways to form her playstyle, Bofuri draws inspiration from Sword Art Online (VR elements), KonoSuba (humour resulting from in-game elements) and even Manga Time Kirara works (an adorable protagonist with a naive but well-intentioned view of the world) to create something that is uniquely enjoyable.

Maple’s experiences in Bofuri with optimising for defense at the expense of every other statistic was naively motivated by a very simple desire: to not die during gameplay while exploring NWO. Because she’s going in completely unaware of optimal builds, Maple tends to play things by the ear and use the skills she acquires to fill deficiencies in her build. In this way, Maple’s experiences can be considered a form of multi-agent reinforcement learning, where agents (Maple and the other players) act in a way to maximise some sort of reward (in-game currency, gear items, event rewards) and act against some sort of loss function (for Maple, “I don’t want to get hurt”). In practise, any sort of machine learning has the potential of yielding unusual results: during one study, in which a system was assigned to build a navy for engaging an enemy navy using a finite pool of resources, the two most successful results came from extremities. One solution involved deploying a vast fleet of suicide vessels to overwhelm the enemy fleet, while the other solution resulted in the creation of a single large, unsinkable ship that then proceeded to trivially eliminate other vessels from the enemy navy without fear of being sunk. While such cases usually only arise in highly abstracted systems (the parameters never specified whether the ships needed to survive, so the algorithm simply cared about achieving a victory state as quickly as possible), they also demonstrate that edge cases in a model shouldn’t be taken lightly. In Bofuri, NWO’s developers quickly realise this: despite being counter-intuitive to other players (Sally remarks that most players spec out a range of attributes, rather than just vitality), Maple’s play-style and with NWO’s unusual progression system, creates an emergent result where Maple becomes a living god in the game world from a consequence of making choices and decisions that more seasoned players would not make. Consequently, Bofuri becomes a wonderful and engaging (if highly simplified) representation of how unintuitive decisions can still provide optimal solutions in some systems. Of course, Bofuri is more than just a glorified introduction to the unusual outcomes resulting from multi-agent reinforcement learning, and the series’ theme is forward enough: there are many ways to have fun, and creativity can result in some unexpected, but entertaining results.

Screenshots and Commentary

  • I was originally recommended Bofuri from a fellow reader and anime blogger back when the year started. It was a cold day, and at the time, I was busy going through Halo: Reach, so I remarked that I’d give it a go as time allowed. Fast forwards to early May, and I finally had an opening to do so. Right from the start, I found myself hooked: Bofuri does everything right, and in the beginning, Kaede (Maple from here on out) is introduced to a game, and finds herself initially drawn in by a rich world to explore.

  • Between KonoSuba and Bofuri, I suddenly have the inclination to return to Elder Scrolls V: Skyrim and continue on in my journey: as a hybrid offensive caster and archer, I excelled at longer-range engagements. I still remember the feeling of starting my journey for the first time, and going to Whiterun was my first quest. On the way, I died to giants, but made it without other troubles. In Bofuri, Maple is able to talk to a few other players and get her journey started: she spends time messing with the mobs and then falls asleep, accruing a mad amount of skills in the process through passive means.

  • Maple inadvertently acquires a range of unusual skills as a result of her explorations: on her first adventure, she realises she has no offensive skills, and decides to eat her opponent over a seven hour period. No game I’ve played allows its players to so dramatically break things: it’d be akin to biting my opponents in a shooter after running of bullets, dulling my blades and losing my fists. However, Bofuri‘s NWO, being a VRMMORPG, lacks these constraints, and Maple finds herself with an excellent gear set, the Black Rose, which makes her a master of poison, and can consume what it touches, converting it into magical energy.

  • On her first event, Maple manages to place third: her gear set makes her uncommonly powerful, and together with her defense, she’s practically invulnerable to most forms of damage. A major part of an RPG is the constant replacement of gear, and NWO seems to eliminate this element entirely despite having levels: the rules are not specified, but it appears that gear one finds scales in accordance to player level. From an in-universe perspective, this allows players to explore a VR world more readily, rather than forcing them to grind out levels, as well as focus on in-game events. Since conventional games need a means of keeping players engaged, non-scaling gear forces players to continuously return and acquire new gear.

  • By the time Risa passes her exams and is allowed to game again, Kaede’s already gained a bit of a reputation. Risa decides to play as Sally, a swashbuckler blessed with high agility: while she reasons that a mage or caster would be great, she takes Maple’s approach and dumps everything into agility. Despite a later start, Risa is highly proficient with games, having won competitions previously, and she catches up to Maple very quickly, defeating a boss on her own as Maple did to acquire a solid gear set of her own.

  • The starting point in NWO is beautiful, with its gentle wooden town, verdant vegetation and floating fountains. For this reason, I’ve decided to focus the screenshots on moments that highlight how detailed and intricate the artwork of Bofuri is. The anime adaptation was produced by Silver Link (Non Non BiyoriBrave WitchesYurikuma Arashi, Miss Caretaker of Sunohara-sou and Stella no Mahou); despite a bit of controversy early in their career surrounding the production of Kokoro Connect, the studio has thankfully, overcome these challenges to produce many excellent series in the years after Kokoro Connect.

  • Maple and Sally visit several of the more picturesque spots in NWO, and I’ll take a few moments here to explain this unusually-written post, which goes over multi-agent reinforcement learning in the context of Bofuri at a very abstract level: I won’t be going into more technical aspects of what the implementation and implications are, and the definitions I use will be very general. An “agent” is composed of entities that can be represented by a tuple describing the object’s state, a set of actions it can perform, and a set of functions that determines what actions are carried out in response to its state. Then, a multi-agent system (MAS) describes a system with multiple agents and their environment. In Bofuri, players like Maple and Sally are the agents, and NWO is the MAS.

  • Reinforcement learning in an agent, then, is composed of a policy (set of actions the agent can carry out), reward function (goals the agent aims to achieve), value function (predicts what an agent gains by following a function in the policy) and a model that defines how the agent acts in the future. In Bofuri, the policy is all of the actions Maple can carry out. The reward function is new gear and skills, the value function is how Maple reasons she’ll finish a task, and then her model is how previous experiences impact what actions Maple takes in the future, whether it be going with what works or exploring new routes that may potentially yield better or worse results.

  • The end result of this is that Bofuri provides a surprisingly faithful, if highly-abstracted, presentation of reinforcement learning in MAS: the outcome of the anime indicates that reinforcement learning can yield some interesting, unexpected results. With this being said, this post is about Bofuri and not about multi-agent reinforcement learning, so there are many details I’ve elected not to formalise or cover. Because Bofuri‘s theme can be summed up to “being open to new experiences has dramatic but pleasant consequences”, and because many reviewers and viewers comment on very similar aspects of Bofuri, I’ve elected to go with a different approach and look at Maple’s performance as a more visual example of how unexpected certain decisions can be in things like machine learning.

  • While Bofuri is something I found to be a neat visual of a machine learning concept, it should be clear that one’s enjoyment of Bofuri is most certainly not contingent on having prior experience with multi-agent reinforcement learning; those looking for the fun in this anime will find it. After a gruelling fight against a named elite, it turns out that the developers had not intended for said named elite to be beaten in battle. Their choice of words suggest it was supposed to be invulnerable, so the fact that Sally and Maple manage to win anyways is the first sign to viewers that, like Miho Nishizumi and Donnie Yen’s Ip Man, their victory is assured.

  • After defeating the so-called unbeatable named elite, Sally and Maple unlock pets. Maple ends up picking a turtle that is faster than she is that she names Syrup, and Sally gains a fox that she dubs Oboro. I’ve never really been particularly good with pets in games, but when done properly, they can be excellent companions to have; NWO’s pets can also learn skills, making them useful as support for combat. In my World of Warcraft days, I had a companion of sorts as a warlock, who had minions that could fight on behalf of a player. I believe I got as far as unlocking the Succubus, but generally preferred the Voidwalker for its increased durability.

  • Bofuri‘s character dynamics become a bit more varied once Maple and Sally befriend Kasumi, a swordsman who resembles Strike Witches‘ Mio Sakamoto in manner and appearance. While she had intended to ambush Maple and seize their medals during the series’ first event, the group fall into a hidden dungeon and must work together to escape. In the process, they combine their skills together to reach an exit that individual, neither Sally nor Kasumi could reach, and in the aftermath, befriend one another.

  • To those familiar with games, Bofuri‘s NWO online is something that offers far more freedom than would be good for game balance. From a design standpoint, the ability to take on a class archetype, direct points towards character attributes and simultaneously acquire skills from usage, without a hard cap on attributes limit depending on level, creates a system where players with enough creativity can act in ways contrary to expectations. In games like Ragnarok Online, players can choose their own specs and optimise those for a class, while World of Warcraft had different races with attributes more suited for some classes than others. In both games, there are a set of skills unique to the class, and limits capped what players could do until they reached a certain level.

  • By comparison, Skyrim was much more open: players were classless, and could learn any skill in the game, but this took time, and attributes also had their limits. For a game, NWO would be considered broken, and the in-game meta would favour players who specialised a small number of attributes. However, for an anime, the design of NWO permits a very unusual story to be presented; Bofuri is an excellent example of a situation where certain design choices are made to accommodate the story at the expense of realism, and while some folks swear by realism in their stories, the fact is that realism is regarded or disregarded depending on what the author’s intents are.

  • As Bofuri continues, Maple begins to build a guild of sorts in order to enjoy the benefits of having a guild (most notably, their own in-game residence) and also to participate in guild events. Besides Kasumi and Kanade, both of whom Maple had met during earlier events, crafter Iz and great shielder Kuromu also joins their guild: Maple had met Iz and Kuromu early in her travels, asking the two for assistance and eventually purchasing custom-made gear from Iz. However, when it turns out the next event is a larger one, Maple sets off recruiting.

  • Back in the starting area, Maple finds Yui and Mai: the two lack confidence in their abilities and mention to Maple that they’ve spent all of their points towards strength simply because they wanted to see what it was like. Maple promises to help the two power-level, and in no time at all, Yui and Mai are now an integral part of Maple Tree, Maple’s guild: they take on an offensive role with their unparalleled brute strength, surprising enemies with their power despite a small stature.

  • Sally’s character is an amalgamation of Yama no Susume‘s Hinata and Yūki Yūna is a Hero‘s Gin Minowa: confident, energetic and always looking for a good challenge, Sally continues to push her skills further in NWO. While ostensibly not as powerful as Maple, Sally’s profound knowledge of games, coupled with her athletic ability in the real world, allows her to pull off impressive manoeuvres that confer an incredible edge during PvP. Coupled with a deep understanding of NWO’s mechanics, Sally becomes a one-girl wrecking ball capable of tearing apart entire teams on her own. Her one weakness is a crippling fear of ghosts, and this has prevented her from completing quests set in haunted areas: it was only with Maple’s support that she pulls through.

  • Once Yui and Mai gain enough experience, Maple Tree is looking like a proper guild: Maple and Kuromu take on defensive roles, while Sally, Kasumi, Mai and Yui are offense-oriented. Rounding out the group is crafter Iz and caster Kanade, who fulfill a support role with their abilities. Despite their small size, Maple Tree has a collection of some of the most interesting players of NWO, and it is with this diverse bunch that she goes into the final event, a competition between guilds that brings to mind Ragnarok Online‘s “War of Emperium” event. One of my friends used to host WoE events on his private server, and I remember that setting up would take upwards of two hours, and to offset the fact that we had a smaller player count, our characters were buffed to ridiculous levels so attackers stood a chance of destroying the Emperium crystal to claim the castle.

  • The actual outcome was sheer, unmediated chaos – I remember single-handedly defending a choke point with Storm Gust and Meteor Strike as a High Wizard for a quarter hour until I ran out of mana points, after which my defending team was overrun. I’m guessing on a proper server with normal characters and larger guilds, WoE would be immensely fun in its own right. In Bofuri, Maple acquires the Loving Sacrifice classified gear set, which allows anyone within a certain radius to take on her defensive capabilities. In practise, this renders everyone invincible, and Maple Tree is befuddled – everyone agrees that it’s only okay because Maple is on their side.

  • After Maple Tree participates in their third event, Maple acquires the “wooly” skill, and the team visits the third level, Bofuri gears up for an event between guilds. We are now into the halfway point of May, and it’s the Victoria Day long weekend, a statuary holiday on the last Monday preceding May 25 in Canada.This morning, I would have been gearing up to go volunteer at Otafest, the local anime convention: I had submitted my volunteering application back in December, and April would’ve seen a volunteer orientation session. In light of the ongoing global health situation, there will not be the excitement and energy surrounding an anime convention that is typical for this time of year.

  • This is admittedly a bit of a disappointment; last year marked the first time I’d volunteered, and it was a superbly enjoyable experience that I would’ve like to partake in again. During the last convention, I ended up learning that the positions I was slated to volunteer in were actually a little more dull than expected, but owing to a shortage of volunteers, I found myself helping at the Maid Café and Bakery. This was a fun experience, since it was a busier one. I will note that in the close-quarters frenzy of trying to keep the stalls stocked, classic anime clichés that I normally count improbable did wind up occurring: while I often comment on probability of various anime tropes as being “unlikely”, like chemistry, close quarters dramatically changes things the odds, and I now understand how the “cute clumsy girl” and “flustered when around senpai” archetypes do, however ludicrous it may sound, have some basis in reality.

  • Lingering still in my memory is a fellow volunteer who’d I had worked with during a gruelling six-hour shift; her shy but dazzling smile helped me to get through two consecutive shifts. As a result of my experiences, for my application this year, I marked that I was more open to volunteering for the exhibition hall and Maid Café, which is where the convention is more festive (compared to the remote panel rooms). Overall, volunteering for anime conventions was a pleasant experience, and one does encounter interesting people in the process, which is what makes it fun. Back in Bofuri, while on a break from power-levelling, Maple and Sally enjoy the waters of NWO, giving the girls a moment to rest and the series to show off Sally’s lithe figure. It appears that NWO manages to import the players’ real-world physical traits for character appearances, so everyone in the game would appear similarly as they would in reality.

  • While Maple is adorable, bearing traits from lead characters of slice-of-life series I’ve come to greatly enjoy, Sally herself is also immensely likeable. Were Sally to be the star of the show in place of Maple, Bofuri would probably still be able to tell the same story of an overpowered character making grown men weep. When their break is interrupted by Frederica, a member of the Holy Sword Guild (home of NWO’s very own Thanos), Sally heads off to duel her to exchange information. During this fight, Sally fakes several skills with her own innate power, giving Frederica the impression that Sally has two evasive skills with a long cool-down, and Sally learns of the Flame Emperor guild’s setup in return.

  • On the day of the event, Maple Tree gears up to go out and play attack-and-defend with the other guilds. I note that of the combat sequences in Bofuri, they are quite amusing to watch, and screenshots alone do not do them justice, so I’ve elected to show off more ordinary moments in this post and will encourage readers to check Bofuri out if they’ve not already done so. Maple’s themed-naming is endearing in its own right: she originally chose a tree as her guild headquarters, and her turtle is deliberately named Syrup so together, she and the turtle become Maple Syrup (the national food of Canada). Simple but iconic, Syrup is best known as Maple’s preferred ride, and most guilds shit bricks upon seeing a flying turtle, which comes to foreshadow total devastation.

  • Maple Tree holds out fairly well in the event’s early stages, and Maple decides to take the fight to Flame Emperors to try and secure more orbs that need to be held for scoring. The page quote I’ve chosen here reflects on Maple’s ridiculous power, taken from an iconic moment in The Avengers: Tony Stark was utterly unimpressed with Loki’s efforts at conquering Earth, and his remark, “We have a Hulk”, is meant to show that Loki was doomed to failure regardless of his army because of the sheer power the Avengers had. By the time of Infinity War, Loki echoes this line to indicate that he’s become a hero, someone who cares for something beyond himself. While Maple Tree may not have a Hulk, they do have a Maple – in Bofuri, Maple appears as powerful as Captain Marvel.

  • There are moments where Maple’s facial expressions resembles those of Yama no Susume‘s Aoi: adorable in her mannerisms, Maple’s appearance belies an absolutely brutal and efficient combat style. Maple is voiced by Kaede Hondo, whom I know best as Kon of Urara Meirocho, Comic Girls‘ Koyume Koizukam, Iroduku: The World in Color‘s very own Kohaku Tsukishiro and even Magical Senpai‘s senpai. Hondo has a number of impressive works in her resume now, and I am going through Magical Senpai now before switching the party over to Nekopara. I do have plans to write about both series eventually.

  • After exploring brings her face-to-face with a cursed robot, Maple bests it in combat to unlock another gear set: the Machine God allows Maple to become a miniaturised GP-03 Dendrobium, capable of using directed energy weapons and powered flight. During the fight against Flame Emperior’s Mii during the guild war, Maple is forced to use this configuration, and she manages to push Mii into a stalemate with her power. Although lacking the aesthetics of Tony Stark’s Iron Man suits, the Machine God appears at least as powerful as any iteration prior to the Mark XLVII – as the Machine God, Maple can use Full-Burst mode the same way the Strike Freedom and Freedom Gundams could, giving her the ability to trivially clear away entire areas without difficulty. When ousted by Maple, the charismatic and cool Mii reverts to a childish personality, whining about how she thought defeat to be impossible. It’s an adorable touch that shows the characters are well-aware they’re in a game.

  • Because of how over-the-top the final few episodes are, and how outrageous the fight with the top-seeded Holy Sword guild’s best fighters was, I’ve chosen not to include the moments are: it takes place in the dark cave housing Maple Tree’s base and involves thrilling close-quarters combat. When it looks like Maple Tree are about to be overrun by Holy Sword’s best, Maple uses her “Atrocity” mode, which transforms her into an unstoppable monster that buffs her attack power and durability at the expense of mobility: “Atrocity” is similar to the Hulk in this sense, although Maple retains full cognitive function and is constrained by only being able to use this once per day of in-game time. Once Holy Sword is on the back foot, Maple decides to support Flame Emperors and blasts away the other guilds, prompting the GMs to end the event early, since there were no more guilds remaining.

  • To celebrate the outcome of their latest event, Maple throws a wild party at guild headquarters while the GMs decide to leave Maple as-is, noting her exploits have rendered NWO immensely popular. While I’m not familiar with what is and isn’t possible in NWO, and having not touched a fantasy-themed RPG for a while, the closest analogue I can think of is The Division 2, which is an RPG with a more modern setting. The Gunner Specialisation, in conjunction with the riot shield skill and gear pieces that confer armour regeneration bonuses, additional armour and health buffs, would probably the closest players can get to a Maple-like build. I recently found a gear talent that confers bonus armour on kills, and I note that against such players, the Sharpshooter specialisation is probably the best counter.

  • I find that for its unique approach in combining elements from the VRMMORPG, isekai and four-panel genres, Bofuri is deserving of a solid A- (3.7 of 4.0, or 8.5 of 10). There’s a second season in the works, and this will be fun to check out. Having said this, the exact date of release isn’t known yet, but it is simply nice to know there will be a continuation. With Bofuri in the books, I now turn my full attention to Magical Senpai and Nekopara: I do have plans to write about both series at some point. Finally, in the absence Otafest this year, it’s an ordinary, quiet and sunny weekend with an extra day of rest, and I’ll take advantage of the time to partake in more Halo 2‘s campaign such that I may join the Halo 2 Anniversary multiplayer as swiftly as possible.

Besides bringing back memories of my old multi-agent systems and biological computation courses, Bofuri held my interests because of its successful melding of multiple aspects from a range of different series to create a vivid world for Maple and her friends to explore. Much as how Maple uses her skills to augment her offensive capabilities and mobility, Bofuri combines traits for a range of genres to create a highly unusual, but engaging result. Maple herself resembles Yama no Susume‘s Aoi, GochiUsa‘s Cocoa and Kiniro Mosaic‘s Shinobu in manner, with a fondness for all things adorable. This conceals her fearsome capabilities in a game that takes the sophistication of the different titles seen in Sword Art Online; NWO is as advanced as the worlds that Kirito and his friends must navigate, although without the threat of death hanging over their heads, Maple’s time in NWO is much more laid-back in manner, and Bofuri makes it clear that while PvE and PvP engagements can become very heated, at the end of the day, NWO is still just a game. Because NWO is about fun, first and foremost, this allows Bofuri to capitalise on Maple’s outrageous capers as a source of humour. The comedy in Bofuri, not as outlandish or perverse as something like KonoSuba, nonetheless has a similar effect of creating a light-hearted atmosphere that reassures viewers. Finally, with her absurd durability, fights involving Maple inevitably resemble those of Girls und Panzer in that, while it is a foregone conclusion that Maple and her friends will find ways to succeed, the path towards this victory becomes the most exciting piece to watch (rather similarly to how Miho’s victories are almost always assured, and the fun comes from the journey rather than the outcome). Altogether, Bofuri acts as a very meta presentation of how unusual combinations can succeed, and in conjunction with Silver Link’s excellent adaptation (fluidly-animated fight scenes, a vividly-presented world that feels life-like, strong voice acting and a good soundtrack), Bofuri is something that proved unexpectedly enjoyable: this is a series suited for folks who are looking for a series about VR gaming without the gravity of something like Sword Art Online, or else are in the market for a series with some isekai elements without being set in a parallel world or a moody story. Finally, news has reached my ears of a second season for Bofuri, and I would be interested to see where things go from here on out: I would not have any objections to viewing and writing about Bofuri‘s second season once it becomes available.

3 responses to “Defense and Multi-Agent Reinforcement Learning in Bofuri: A Whole-series Review and Recommendation

  1. Dewbond May 16, 2020 at 13:41

    ‘Bofuri is something that proved unexpectedly enjoyable: this is a series suited for folks who are looking for a series about VR gaming without the gravity of something like Sword Art Online’

    That’s probably the best way to sum up the series. It’s a VR anime without the baggage of trying to be serious or have a message. A tune in, tune out, anime.

    I loved it to death, and I’m shocked it’s getting a second season.

    Liked by 1 person

    • infinitezenith May 21, 2020 at 08:26

      Sometimes, a light-hearted romp in a VR world with no stakes is exactly what the day calls for. I was also surprised to see news of a second season: Bofuri‘s first season seemed to wrap up pretty conclusively, but a continuation is not unwelcome!

      Liked by 2 people

  2. Pingback: Other Posts to Crow About – 2020 Week 21 Edition

Please provide feedback!

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: