Code in Color with William Shepherd

Mandy Moore - Aug 25 '21 - - Dev Community

Relicans host, Kirk Haines talks to Software Engineer and Serial Entrepreneur William Shepherd about traveling abroad during the COVID-19 pandemic, working remotely, and doing outreach to show others in the Black community that tech exists that they can also be a part of it. As William puts it, “The first step in understanding that you can do something is to know that something exists.”

Should you find a burning need to share your thoughts or rants about the show, please spray them at devrel@newrelic.com. While you're going to all the trouble of shipping us some bytes, please consider taking a moment to let us know what you'd like to hear on the show in the future. Despite the all-caps flaming you will receive in response, please know that we are sincerely interested in your feedback; we aim to appease. Follow us on the Twitters: @PolyglotShow.

play pause Polyglot

Jonan Scheffler: Hello and welcome to Polyglot, proudly brought to you by New Relic's developer relations team, The Relicans. Polyglot is about software design. It's about looking beyond languages to the patterns and methods that we as developers use to do our best work. You can join us every week to hear from developers who have stories to share about what has worked for them and may have some opinions about how best to write quality software. We may not always agree, but we are certainly going to have fun, and we will always do our best to level up together. You can find the show notes for this episode and all of The Relicans podcasts on developer.newrelic.com/podcasts. Thank you so much for joining us. Enjoy the show.

Kirk Haines: Welcome to Polyglot. My name is Kirk Haines. You can find me @wyhaines on Twitter and really pretty much wyhaines everywhere else. And today, I'd like to welcome my guest William Shepherd to the show. William, would you like to introduce yourself to everybody?

William Shepherd: Sure. My name is William. I'm a software engineer. You can find me on Twitter and pretty much any other social network under @iAmWillShepherd. And I'm a software engineer.

Kirk: Cool. @iAmWillShepherd, that's pretty easy to remember. We were talking a little bit before the show started about your background. Why don't you just go ahead and repeat some of that for the rest of the world to hear now?

William: Sure. My background is actually in computer science. I got into software engineering because I needed money. I've done everything from custom software for customized hardware, building to mobile development as well as web development, and most recently, electron development.

Kirk: Nice, so quite a few things. You've been a serial entrepreneur while you've been going through all of these things. The background that I got on you listed that you've done things in real estate and export and tech consultancies that turned into startups. You've packed a lot of things into really a pretty short amount of time because you've been working professionally for what, about a decade now?

William: Yeah, about a decade as a software engineer. I'd been working before that.

Kirk: So, what was the first tech business that you got involved in? You said you graduated with a degree in computer science, but you got into software engineering because you have to eat.

William: Yes.

Kirk: What got you started? Where was your starting point there?

William: So my starting point was actually at a consulting firm doing defense contracting. Can't talk too much about it.

Kirk: [laughs]

William: But it's the typical defense contract type of stuff where the government needs something done, and they need someone to do it. And I just so happened to be young enough to be able to get a security clearance pretty easily. They only check your background from the age of 18. I got mine at the age of 21, so I really kind of fell into it. It wasn't a choice. It was mostly that the company offered me a job. They paid us well, and I decided to take it.

Kirk: Interesting. And so, I guess from a language standpoint, what were you working with then?

William: So at that company, it was C#. And at the time, I didn't know C#. In fact, at my school, the philosophy is that we're not going to teach you industry stuff. That's the industry's job to teach you industry stuff. We're just going to teach you the fundamentals and how to think. So when I got to the job, I remember thinking that I was going to have to do all of these things that I had to do in college, like build my own data structures and actually know the machine, the underlying how that actually works. And when I got my first project, and it was C# .NET, it felt weird because everything was done for me. And what I mean by that is if I wanted to set up a dictionary or whatever, I didn't have to create my own asset at all. It's just a type or a type that you can import.

And it changed my experience in software because when I graduated, I actually didn't want to go into software engineering. Computer science was very difficult for me. And I thought that that was the job, just getting into the details and the weeds of everything, and that didn't interest me at all. But fortunately, with C# and Visual Studio IntelliSense, it made things a lot easier. And that's shaped how I view most programming languages and tools. It’s based on that; how well does the tool allow me to be productive without having to worry about the little details that don't matter to the problem that I'm solving?

Kirk: Yeah, that makes sense. So just as a tangent then, so C#, so you've done a lot of .NET. What is your current favorite toolset, favorite language, favorite environment to work in?

William: That's a tough one. This is going to sound bad, but I don't have a favorite. Once you get far enough along in any of them, you start to see all of their flaws, and they always suck no matter what.

Kirk: [laughs]

William: But to answer your question indirectly, the language that I'm using the most right now is TypeScript, which is a distant, maybe not so distant cousin of C#. They're both built by the same person. So I do enjoy that. And the tooling takes a lot of philosophies from Visual Studio and .NET, which I appreciate.

Kirk: Cool. I want to pivot just a little bit. You've lived abroad and traveled to all but two continents.

William: Yes.

Kirk: So I'm curious about which of the two continents that you haven't been to, and where did you live when you were living abroad?

William: Okay. So to answer your first question, Antarctica, and Australia if you count it as a continent, I count it as a continent. So I haven't been to either of those. And I actually moved abroad last year during 2020. The way things were going here, I was just like, I didn't want to be here anymore. So I left for Oman, and I was out there for a little while. And I came back here to Houston, Texas, for vacation. And we're still living through these COVID times, and lockdowns are still a thing. And the country that I was supposed to go back to lockdown measures are back in effect; quarantine measures are back in effect. And I've done a two-week quarantine, like, a real one. I don't plan to do it again.

Kirk: That makes a lot of sense, yeah. I heard quarantines are not something that most people in the U.S., even in the areas that had the most restrictions, really had to deal with in the same way that people in a lot of the other parts of the world dealt with it.

William: Absolutely.

Kirk: I guess coming back around to that and traveling and living abroad, you've done a lot of remote work, I assume. And I assume you're working remotely currently.

William: Yes. Even when I wasn't working remotely, my team was always remote. So back when I was doing the defense contracting...I'm from Texas, and D.C. is not in Texas. But I didn't have to actually fly out there all the time because I can just remote into certain machines. And in cases where I couldn't do that, I would have to fly. But my teams were always in another locale. So I got really good at working with people while being alone. Imagine your first job ever in the industry, and you're told that "By the way, your team, all three of them, are in another state." That was my experience. So I cut my teeth on just being alone by myself and having to rely on written communication in order to get the information that I needed.

Kirk: So working remotely is one of those things that...I've been working remotely part-time since 1998, somewhere in that vicinity, and full-time for 20 years. But it's one of those things that obviously a lot of people have had their first introduction with it in the last 18 months as companies said, "Okay, we're sending our whole workforce home." But a lot of people I know really struggle to figure out how to work remotely in a way that separates their work life from their personal life and keeps them from getting too entangled and too tied up in each other, so you have boundaries of here's personal time, here's work time, and that sort of thing. And I'm just curious, as someone who your very first job was here, you're going to work remotely. Did you have any of those struggles, any of those difficulties turning work off and going and having your own personal time?

William: Not initially. And I think this mostly just comes down to my attitude where it's, my life is my life, and the work I have my hours. I know that some people don't feel that you should think that way, but it was important for me to protect my time because that's the only resource we have which is finite. We don't get it back. So, in my case, it was sometimes difficult to...in certain situations where I had a deadline, there would be cases where I would come home because remember, I would work in an office, but my team was remote. So I would come home, and I'd get an email saying something happened, and I would just do it. I was younger then, so I didn't have that much going on in life, so I would just do it.

But over time, I've gotten really good about making sure that my time is on a calendar. So when it gets to a certain time period, it's like, I'm at work. For the people who don't see this, I'm using air quotes like, "I'm at work," which work, in this case, would just be my personal life. All the things that I want to do I actually have in my calendar, and it shows up as busy so that other people know.

Kirk: That's a good way to do it, using your calendar and just marking yourself off. Outside of these hours, I'm off-limits. Because that really is one thing that is a trap for a lot of people, it's really easy for a lot of people to...they feel the pressure to get something done. And so maybe they go have dinner, but then they're back at the computer later. I know I've been guilty of that many times myself, and I've been doing this a long time. And it's still something that I sometimes have a hard time limiting those hours to reasonable amounts. So I think that it's really interesting to me to hear the way you describe it that you just put those barriers in place, and they just are there, and that's the way it is.

William: Yes. I think it could be dangerous to put work first all the time. For me, you can call me lucky or unlucky, but I learned the hard way by losing relationships where it's like, I'm always focused on work or focused on personal growth and whatever to move up the ladder or whatever. And after I lost some people in my family and other friends, it's like, the jobs and I say jobs plural on purpose; the jobs are not a replacement for that. Some of my friends who I have now they've been my friends since high school, whereas I've had plenty of jobs. So now that I have that perspective, I will never put a job ahead of any relationship because, at the end of the day, that relationship is more important to me than just a job. And I know that's probably a hot take for some people, but I've experienced enough to know that it's the people in your life that are more important.

Kirk: Yeah, that's a really good attitude. So during that off time, the notes that I got said that you have hobbies that include photography and some sort of racing.

William: Yes. [chuckles]

Kirk: But it was very unclear what kind of racing it was talking about. Do you want to talk about that?

William: Sure. I have a race kart. It's a 120CC race kart. Maybe I'll just go by miles per hour. It goes up to 70 miles per hour. It's really, really fast. I haven't competed in that yet. The goal was to start competing last year, but this thing called COVID happened, and that put a damper on a lot of that. Before that, I was doing mostly just track days, not competition but just track events. I had a sports car. I don't want to really get into what kind because it may send the wrong message.

Kirk: [laughs]

William: But it's a really nice one. If 991 means anything to you, then maybe you'll understand. [laughs]

Kirk: Okay, cool. You're still waiting for the opportunity to actually race-race with it then.

William: Yes, although I am not confident that that's going to happen anytime soon, just with the current state of affairs. I got my racing license in 2019, the first half of 2019. And in my mind, at that time, I'm like, oh, I'm going to do all of these things. And so far, none of it has come true, and I don't really have much control over it. So I'd just say it's fine so long as I can at least go to the track and burn off steam, then I'm just as happy.

Kirk: And what do you do for photography?

William: I mostly just take pictures of wherever I am. So in 2018, I quit work and decided to go and travel the world. And I brought my camera with me. I have a little Sony a7 III. And all of the places that I went to, I was taking pictures because, in my case, I'm the first person in my family to really have left the country as well as my community. Most of the people in my community rarely leave America, and if they do, it is either to Jamaica, or the Bahamas, or Mexico. No one really goes overseas. So for me, it was just a way of documenting some of the experiences and some of the things that I would see and being able to share that with others as well as to show people here, specifically my friends, that the picture that's painted about other countries isn't necessarily true.

If I tell you I've gone to Africa, maybe you wouldn't think this, but others are like, oh well, people are living in huts. There are no roads. It's like, no, they have actual things there. They have technology, for instance, in Nigeria, they're very technologically advanced, and they're growing quickly. And it's like if you're here in America and you don't understand that other countries are on the come up as well, then it can bite you when it's too late.

Kirk: Yeah. We're kind of getting off the whole polyglot thing a little bit, but I'm really curious. It sounds like you've traveled to a lot of different places. What are some of the more interesting places that you've visited?

William: Singapore is probably the most interesting. It's such an advanced...it's very different from the city that I'm from, Houston. It's a very planned city for one. The urban planning is amazing. It's one of the first places that I've gone to in my life where I actually understand the mindset of you don't need a car. By the way, if any of your listeners are in Texas, this isn't a place where you can live without a car. And just to have that mentality of we need a car to do anything to be free, I realize that that's a very either Texian attitude or a very American attitude where a car is associated with freedom.

And what I found there is that I felt a little bit more free. I felt less stressed because I didn't have to worry about getting in a car and driving and worrying about other people and then finding a parking spot. I can just use my phone, tap the little thing, and get on a train, and go to where I need to go and be done with it and pay for everything with my phone. That's something that I can't do here. That was impressive to me because most Americans are told that we have the best of everything in the world. I mean, it could be true, but it's distributed. It's not in one place where it's like, I went to one place in Singapore, and everything is there. And it was an eye-opening experience.

Kirk: So, have you ever traveled much in Europe?

William: I've only been to a few countries in Europe: France, Germany, and Italy. I haven't done much traveling there.

Kirk: I'm in Belgium right now. And the thing that you talk about with the trains and stuff, that has largely been my experience here. I can pretty much pick a place on the map, and I can pull out an app on my phone, and I can put in here's where I'm at, and here's where I want to go. And it'll tell me, "Here's the train you get on. Here's the bus you get on. Here's how far you have to walk," and you're there. While there are a lot of cars, there's absolutely no real need for one to get from any point A to point B, and it is really a different mindset.

And the thing that you mentioned with the telephones, I've seen that too. You get on a bus here...once COVID came in, they walled off all the access to the bus drivers. So there's a plastic screen, and you can't get to the bus drivers, so you can't use coins to pay your fare. And so they have these readers in the bus, and you just have an app on your phone. And you get on the bus, and you drive where the bus is going to go, and you get off. And yeah, it's all just taken care of. And it's really fascinating because yeah, I've never seen...maybe there are some places in the U.S. that have systems like that, but I've never seen it.

William: Yes. And that's the problem is that sure, there might be places like that in the U.S., but we're such a dispersed country where even if we had all of those things...Well, if you live in New York, that doesn't help a person living in San Antonio.

Kirk: So I want to take this and pull it back around to something else that I read that actually really jumped out at me. And it jumped out at me...we grew up in very different places, but there are some similarities to them. Your comment about when you're traveling you take lots of pictures because a lot of people from where you're from never leave the country. Where I'm from, I know people who have never traveled more than a two or three-hour drive from where they were born. And there are lots of people who the world is a difficult thing for them to imagine.

There was something that I read, and I'm going to read it word for word because I don't know if it's your words or if it's a paraphrasing of your words or not, but I liked how it was written. "Being poor versus having a large pool of opportunities is largely influenced by systemic issues rather than personal ones." And those words really jump out at me and reverberate with me. But I'm curious to hear what...I assume those were your words.

William: Yeah.

Kirk: So, what do you mean by them?

William: Well, I have had the fortune of being a part of almost every social class in America. I grew up in poverty, working-class, lower-middle-class, upper-middle-class, to beyond. And one of the things that I noticed about my life now is how people want to give me stuff. For instance, I remember when I first graduated college, and I needed to buy a car, I couldn't get a loan. I had just gotten my job, and to me, it wasn't a lot of money. I was told that it was a lot of money because the average household income was, I think, $48,000 at the time. I was making quite a bit more than that. And I tried to get a car, and every bank denied me. And when I eventually was able to get a car thanks to a co-signer, the interest rate was 14%. Now fast forward to today, where if I wanted to get a car, my interest rate is typically 0.9%. And I don't really have to ask. I just fill out my name, and instantly I get an approval.

And that got me thinking like, well, the people who would need a loan, chances are they're the people who don't have anything. And the people who have everything who don't need anything tend to be the ones who get everything. So, for instance, when I fly, I get upgraded to business class. I guess because I fly enough, I don't know, but I just get free upgrades. And imagine the person who just is trying to get a flight to a place. They need a ticket to get on the plane. They don't get anything for free. They have to pay full costs, and sometimes they pay more because they're paying on the credit card, which means that you're paying interest. Or in other cases, I'm getting a coupon, a discount just because of, I don't know, they're just like oh yeah, this and this here's this special coupon for you. You get $500 off of something.

And I remember thinking there was a time in my life where that literally could have been the difference between me having food to eat versus not having food to eat. And at that time, nobody wanted to do anything for me. As I've gotten older and matured, I realized that the more successful you are, the more opportunity you have access to. And especially in our country in America, you tend to be villainized if you're not successful. You're told, "This is your fault.” And that's something that resonates with me because most of my family they're very similar to me. We come from the same place, and they don't have access to the same opportunities that I have.

And people will say, "Oh, it's their fault because they didn't do this." And I'm like, well, the only reason why I'm here is because my grandpa's boss, who was the CEO of a very large home builder took an interest in me. And they invited me with them on their company trips. And I got to be around him and his family. And it was because of them that I had access to that opportunity. It wasn't because I'm just some awesome person because we're all unknown when we're born like, no one knows who we are. So it was a realization when I started meeting other more successful people and just seeing how different their life was to mine and how they think about stuff where every problem that I would say the answer starts something like this, "Oh, they just need to do that." And the keyword that I key in on is just.

Kirk: Just.

William: Where it's like, have you ever been poor? There is no just because if you're worried about eating every night, chances are you're not going to have time to go and read a book about some programming language that can maybe change your life because you know that the meal at the end of today is the day that's going to change your life, not something maybe two or three years from now. And I think that a lot of times people will have this idea that you should be forward-looking, but they have that idea in their current situation as in they've never been homeless to know that when you're homeless, you're not thinking of that. At least when I was like that, I wasn't thinking about oh yeah, let me go code. It was more like, how can I not be homeless? It was a day at a time. And I feel like it's a privilege to be able to think about a future that's a year or 2, 5, or even ten years from now.

Kirk: One of the things that I think about with that is that...so this overarching career that we both have affords a lot of opportunities. And it affords a lot of opportunities because, especially with the way COVID has changed the world and companies being more accepting of remote work and things like that, we're largely able to pick where we live and still find work and things like that. This career path that you started out on is something that obviously eventually led to a lot of success that you've had.

One of the things that I am always thinking about is because...so I grew up in the poorest county in Wyoming. And there are a lot of people there who don't even really realize that there's a possibility out there in the world that they could go from where they're at economically to somewhere else without even necessarily having to leave where they're at physically or that they could have access to economic possibilities that allow them to leave. Like I said, I know people that have never traveled more than a two or three-hour drive from where they were born. And for some of those people, that's because economically, they can't afford it. They never could.

And I am always trying to brainstorm and figure out ways to bring the opportunities that I've had, the opportunities that you've had to more people. And I don't know if that's something that you've thought about or not in the context of all these things that you've just talked about. But I'm curious if being poor is influenced by systemic issues rather than personal ones, how do we break that cycle and give people the opportunities that they need? You and I, as individuals, can't change the whole system. We only have so much power as individuals. How do we do that?

William: That's a tough one. I think it's cultural. I'm assuming that we're talking about here in America.

Kirk: Yeah.

William: I don't think every country is like here. It is very cultural where the saying or this idea that everyone needs to lift themselves up by their bootstraps. And it's comical when I think about that now because if you know a little bit of history, you know most of the people who are where they are now didn't lift themselves up by their bootstraps. I believe our federal government had The Homestead Act at some point where they would just give away land to people. And there were certain people who were excluded from that. And there were certain people who weren't even considered people; they were considered three-fifths of a person. It's like, how do you say that? "Oh yeah, just pick yourself up," when no one else did.

And I think now we're so far along where it's like this hyper-individualistic culture where it's almost like if you don't become successful, it's always your fault. It has nothing to do with anything else. It's just you didn't work hard enough, or you're not smart enough. It's always on you, and it's never on well; how can we do better? And I don't think that that's something that we're likely going to be able to change in a generation. It's taken us generations to get to where we are now. I think it's going to take some generations to get out of this.

I don't have any good answers. The only thing I can say is that I try to do my part. I am doing outreach where I'm trying to show people in my community that they can do this. The first step in understanding that you can do something is to know that something exists. You're talking to me right now. I didn't know what college was until I became a sophomore in high school, just to put it into perspective. Access is important. If you're not around people who can show you that these are possibilities, this is a way that you can add value to society, you don't know that. And I think it starts with our education system. But now that I have a bit of understanding of how our education system works, I'm not confident that it's going to change.

Kirk: Yeah. And education systems are difficult because if you look at other education systems around the world, there are pros and cons to pretty much every one of them. And so it's a hard problem from that perspective. One of the things that you've said that is interesting is that you're trying to do your part. It sounds like you're doing mentoring or outreach of some sort in your community.

William: Yeah.

Kirk: Is it through an organized program, or is it just you volunteering your time in places?

William: It's through the company that was a consulting firm that I had that I pivoted to a product company, so I do it through that. And I actually do have a social media presence that I just started, I think less than 30 days ago or maybe 30 days now. It's called Code in Color. The idea behind that is to show people who look like me and others...they don't have to just look like me but anyone who comes from a place where they've never met a software engineer. As far as I understand, there are only about 30 million of us on the planet. The population is 9 billion. So the likelihood that someone's met a software engineer is not very high.

So it's just to become more available, to put myself out there because now that we have the internet and people have phones and most everyone has access to the internet, it's easier for them to start to see different ways that they can contribute to society. And I think about all of the things that I wish I would have had when I started down this path, and I'd do that. It's like yeah, Google existed, but it didn't exist like it does today. I think Google came out in the late '90s. I'm a little bit older than that, so I was born in the '80s. And when I learned how to do it, I read a manual, like, the calculator. If you've ever heard of the TI-83, it comes with a manual.

Kirk: Yeah.

William: I read that. That's how I learned how to program, and yeah, sure, I learned well. It's gotten me here, but I also have this belief that everyone shouldn't have to go through the same things that I went through to get to where they need to go because that's not how you build progress. I don't know who said this, but it's like, "We stand on the shoulders of the giants." I don't think that you should force a person to say, "Oh yeah, well, I learned the hard way. I learned this and this. You need to go do that." And honestly, that's the culture in engineering that I hate with a passion where it's like, "Oh, I had to do this, so therefore you have to." It's like, well, I mean, my great grandparents had to toil in fields. That doesn't mean that I should have to do it. I don't understand why people have this idea that if they went through the fire pit, then everyone has to do it and follow in their footsteps.

Kirk: Yeah, I totally agree with you there. I think actually that...we talked actually very, very little about software engineering.

William: I'm happy to switch to software engineering. I like that too.

Kirk: No, no, no, I'm not complaining. I thought that this was...for me personally, I hope that people who are listening thought that this was interesting. I thought it was incredibly interesting. And this point that I guess we're ending on right here, I think, is a really important point just that we have so many opportunities that have been afforded to us because whatever happened in life got us to the point where we have these careers that are valued. And by being valued, like you said, we turn around, and we get other things that are given to us more easily than other people get them.

And I personally feel like there's I don't know if duty is the right word, but there's a responsibility maybe to try to spread that around a little bit. Because yeah, like you said, there are 9 billion people in the world and more every day. And the relative numbers of people who can program...we have this pool of people who can program. We have this pool of people who can't. And the ratio of can program to can't program, I think, is actually shrinking, not growing because the population is growing so fast. And that seems to me to be a problem because being able to work with computers in one way or another leads to a lot of other opportunities in life. And the words that you said there really resonate with me. And so I'm going to turn it back over to you if you want to say any last things; you; how,, if you want to talk about how people might be able to learn more about what you're doing or help out with what you're doing or anything. Share with us your final thoughts where people can find you again that sort of thing.

William: Well, my final thought and this is going off of what you said where you felt like it could be either a duty or responsibility. I fully agree with that. And my reasoning behind that is that everything has a cost, whether you realize it or not. If you want to continue to have this mindset of I'm going to “other” other people or alienating other people by not sharing what I know, well, people are going to eat no matter what. If you look at history, it's filled with people eating no matter what. And there's only a certain level of inequality that a system can take before the people who feel like they're not getting what they're supposed to be getting or the short end of the stick they're going to take the stick. And it's incumbent on us to make sure that we're sharing that because, at the end of the day, we all live on the same planet. We're all humans. There's nothing that I can do here that won't affect someone else in another place. So you may think that we're all independent, but in reality, we're very connected. So I think it's important to just keep that in mind.

As far as what I'm doing, the best way to help me is just to follow me on Instagram for now; it’s Code in Color. And just give me things that you would like to know more about or things to discuss. I often admit I don't know a lot of things. There's a lot of stuff that I don't know. I need a lot of help with a lot of stuff. And the more I learn, the more I realize that I have a longer way to go. So just sharing your insights or your stories with me, and maybe I can highlight that because there might be a person out there who doesn't know about programming, and they can hear this or hear you and hear your story, and it may resonate with them.

It's definitely something that happened to me where I saw someone, and I was like, oh, I can do that because I saw someone like me who did it. And I think that's a very powerful thing. And if you don't think it is, then maybe you're in that group where all of the people who build the things look just like you. So it's like, it's the same thing. It's just you take it for granted, whereas not everyone takes it for granted, so just keep that in mind.

Kirk: Well, thank you very much for joining me today. I've really enjoyed this conversation a lot. And for everybody out there, thanks for listening to Polyglot. You can find us on Twitter @PolyglotShow. And you can also find us online. We have a forum at therelicans.com. And I thank everybody for tuning in and listening to us. And we'll catch you again next week.

Jonan: Thank you so much for joining us. We really appreciate it. You can find the show notes for this episode along with all of the rest of The Relicans podcasts on therelicans.com. In fact, most anything The Relicans get up to online will be on that site. We'll see you next week. Take care.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .