which is our programming language, REACH, which is designed for helping you adapt in as easy a way as possible. I'm going to talk a little bit about our organization and the structure of the REACH programming language, but I want to spend the majority of the time today doing programming of an app. Now, if you want to follow along on the code that we've been talking about, what you can do is you can go to our website, which is REACH.sh. If you go to REACH.sh, you'll get to that site right there. And if you click on come to our workshop at DevCon, then you'll see our reddit here. And the reddit has a copy of the slides that you can open if you would like, as well as a link to our git repository for this lecture. That git repository will look like this. And in the repository is all the code that we'll be writing today. If you want to follow along, then you can start from the initial version and, you know, enter code as we start. And then after, eventually we'll get to a point where we've written the entire REACH part of the program, and then we'll switch and talk about making the client-side code. And the next version is minimal. And then the final code will be the final one that's already targeted for the end of the day. So if you want, you can work those things. Now, to use the REACH language, right now, to use the compiler, you'll need to have Docker and Docker compilers themselves, and, of course, have the basic units and parameters. So if, while I'm talking to the introductory part, if you want to go to the site, click on it, and then from the base directory, go into, say, final, make, clean, mil-front, then that will make sure that you have all the Docker engines down, but if you want to follow along. But if you don't want to follow along, then you can just do this later. And there will be value in experiencing the rest of the project. Our team is Chris Winner. Chris will be the great, great, great panel. And then me, James McCartney. So Chris is a serial entrepreneur who's had a lot of experience in the space. And my background is that I am a research professor at the University of Massachusetts, Lowell. And I'm also one of the developers of the Racket programming language. So Racket is a list-based language that's very popular as far as list-based programming languages go. It's commonly used in a lot of colleges and universities. And my research is mostly focused on doing verification of progress for calls and formal verification of other systems. So the READ project really represents the culmination of bi-research. Now, our goal as a organization is to try to dramatically lower the barrier to entry to blockchain. So we think that there's a huge amount of potential in this space, but right now it's just too complicated to build real apps. And our goal is to dramatically lower that. And we'll show you that today by building something here over the next 40 minutes. Now, the idea of the READ platform is that we want to solve three problems. We want to abstract over the decentralization platform. Right now, Ethereum is extremely productive and popular. There are many people who believe that there are problems with Ethereum and other platforms. But it's too risky to invest in one of these other platforms. If you write your product in each, then you will be able to compile to any different platform. So we are trying to, we're trying to live up to the right ones right in many of these cases. The next thing that we want to solve is that we want to make sure that the dApps that people write are trustworthy. So a major and part of what we'll be talking about later is the way that formal verification is integral to the operation of each compiler and the way that we implement it. Finally, part of being trustworthy is ensuring that there is consistency between the expectations of contracts and the expectations of the clients. And the way that we realize that in the READ language is that it is not a smart contract language. It is a dApp language where when you write your program in this one language, you get the clients that will drive the behavior of the contract as well as the contract itself. And there's a guarantee that there is consistency. Now we have some interesting techniques that we use to do that. And I'll talk a little bit about that before we focus on the code. Now one of the ways that we get the abstraction of being able to provide to go to many different decentralization platforms is that we have a very straightforward constrained model of what a blockchain provides. Our idea is that we really think of the blockchain as providing common knowledge about a monotonically increasing dangerousness. And those adjectives, you might say, they really constrain all the ways that we look at what a contract or what the clients provide. The contract is this repository of knowledge and the clients react to that information and attempt to add things to it if necessary. And so I'm not going to go into the details here as much as I do to understand what our big picture is. Now the other principle that we use inside of REACH is that the REACH language performs a lot of sophisticated analysis on your code. At the most basic level we have a sound type as you should expect in a modern language. In addition to that, however, we have analyses that are particular to the needs of depth. As one little example, one of the things that we'll see later is the way that REACH uses information flow security to guarantee that secret information that is known only to go to their clients is not shared without being explicitly declassified. Now the way that we do verification is that we take the program written in REACH and we convert it into an SMT problem. SMT is one of the classic problems of computer science and there are many extremely reliable form and theorem providers like C3 that can automatically discharge through public applications. And so a major part of the way that REACH is structured is to make it so that we can automatically produce this SMT problem. Our goal is to provide formal verification without any interaction from the user during the proof process. So that means that we have to be able to discharge all of the public applications automatically. And the only way that we can do that is having a highly sophisticated approach. Now we have a lot of different kinds of properties that can be expressed inside of REACH programs. At the highest level we have basic systems level properties that should be true at all depths. Think of like if you're programming a C program, you never want to have a null pointer exception. And you don't actually need to know anything about the program that you're running to know that it should have that property. So similarly, part of REACH is to automatically synthesize properties like this to make sense for all projects. On the other hand, we also have the ability to write down particular properties of relevance for one application. In the same way that when you're writing a C program, you will have custom assertions that only make sense for your program. So we have the same logic inside of REACH. And again we'll talk about this later. Now the next thing is that as I mentioned, the REACH language provides the entire program. We use a process called endpoint projection to extract each of the individual pieces of the program out. Again I'll talk about this in a moment. So that's kind of a roadmap of where I want to go. And now let's switch and dive back into the code. Now I want to say actually one more thing, which is that REACH is the culmination of another DSL that I worked on previously. Another company making open source products called Elacris. And that other language is called Elacri. And Elacri is also available and has, we've diverged development for the last few months. And there are different features in the Elacri language as the REACH language. And I'm very happy to talk to anyone about what those differences are offline. But I want to make sure that they acknowledge the background of the project. So now what I'm doing is I'm going to switch and go over to the repository. So in the repository we're going to go into the initial directory. And this is the code that we'll be working on. Now if you open this there's going to be a lot of boilerplate stuff that's to make it so that it can run effectively. Let me just comment a tiny bit about this before we open to clarify it. So when you use REACH, to make it so it's as easy as possible for all of you to use, everything is entirely dogarized. So when you run the application, when you compile the application it compiles it into a Docker container that you can then run. That Docker container is automatically configured to connect to a test network that it also spins up and goes. So you don't need to worry about that part of testing. Similarly you don't need to download or install anything like REACH compiler. The REACH compiler is the shell size down to the bottom which is eight lines that configures a Docker instance for you. So there's a lot here that's going to make it so that those things will all sync together. But we're going to be inside of this file right here multi-sig.rsh. That's going to be our REACH program. Here's what we're going to start off as. So in the REACH language you are writing in a subset of JavaScript. So the syntax is exactly the same as JavaScript. Almost all normal JavaScript features are available and they mean roughly the same thing but there are many special things. So for example let's start by talking about what we're going to build and what the overall model of a REACH program is. What we're going to build today is an abstraction of a multi-signature wallet. The key idea of a multi-signature wallet is that many people collaborate to tool funds and then when they extract those funds other people have a say on whether or not the extraction happens. So we're going to abstract that idea to two accounts a parent and a child. The parent makes a deposit on behalf of the child and the child can attempt to make withdrawals and it must be explicitly approved by the parent. So this is not a product that when we're done today we're going to launch and become blockchain millionaires. This is an abstraction of what kinds of problems people attempt to solve on the blockchain and it's small enough that we can do it in the next 30 minutes. So the first thing that we want to do is we want to specify that this protocol involves two different participants, the child and the parent. Inside of the REACH language one of the things that you do is you specify each one of the parties and then we'll write one program down here, this main function and this main function is going to encode the behavior of all of the participants as well as all of the smart contracts. So the first thing that we'll do is we'll have the child attached to the contract. And then having the child make a publication. Now the idea of the blockchain is there's this monotonically increasing data structure of the history of all events that were added to it. In this case we think about that as being a publication to all of the other parties. So when we call child.publish we're saying that it's the child's responsibility to publish this information. Now it turns out that there's actually nothing that the child knows originally that they're going to connect with. Now every time you expect to see a message on in the protocol we have to say what would happen if the person who's supposed to do this didn't do it. What if they time out for instance. And so we always specify what will happen in the case of a timeout. And timeouts are expressed in terms of how many blocks you're willing to wait for a message. So we're going to just have this variable in our program, delay seconds, and if it doesn't then we'll fail. And the way that we'll fail is that anyone that's what this underscore means, anyone is able to submit a message. And what this message does is it will commit the transaction and then say that we have finished writing the protocol. And the reason that I'm returning this array of zero and zero is because at the end of the protocol when we're finally done we're going to return how many times the parent said yes and how many times the parent said no. So if the child times out and never joins the protocol then we're done and so no events actually happen. Now after we do this now the code has transitioned down here. And we're now inside of the contract. So at this point we need to verify anything that must be true above the publication. Now in this case nothing was actually published so there's nothing to say so we commit the transaction. And now we go back to a context where we're outside of the protocol. The idea of the reach language is that you switch between local blocks where a particular agent or many agents are simultaneously doing things. And then synchronization or consensus blocks. And in those consensus blocks all of the parties are doing the same thing and they agree on all of the information that they're getting left. Let's do an actually interesting example so after the child has joined the protocol we now want the parent to. So we're right parent dot only. So this is something that only the parent will do. Now what do we want them to do? We're going to have them run a function and so we'll specify that as a function of no arguments. And what they'll do is they'll compute what the allowance that we're going to give us. Now notice that it's a circumstance where it makes sense that at this point in the protocol the parent is always going to decide what the allowance is. But in our reach program like how do we know what you, the particular parent, are going to give to Sally before she goes on her, you know, it's a pretty great trip. How are you going to know? Well there's two ways that we can do this. The first way is that notice up here when I wrote, when I defined the parent, I said this empty object right here. So in this spot you can write initial information that every print, that that participant starts the protocol. So we could add in here knowledge of what the initial allowance is going to be. Instead what we'll do though is that we will interact with the front end. So we'll call it interact. This is a special object inside of the reach language that represents the client that will ultimately run the parent part of the protocol. So we're going to take that object and we're going to call allowance on it. Now let's return a value and we need to assert that that value is going to be an integer. This value right here we want to eventually provide it. So we'll go next and we'll say parent.publish the allowance. So we're going to publish to the rest of the world that the allowance that the child has access to is this number. Now unfortunately if we try to compile the program right now, it is going to fail. And it's not going to fail because I have this dot here. It's going to fail even if you let me fix that. The reason it's going to fail is that this program fails to satisfy the information flow security system. The reason why is that all the information that comes from the client, from the front end, is assumed to be secret information. They must be explicitly declassified. So what we'll do is we'll call declassify and now we've declassified it and we're allowed to puncture it. So good. We've made some progress. Now the next thing that I want to talk to you about is how every time we make a publication we can combine that with a unit of value that will be transferred to the client. So we'll write that by saying pay. So we'll actually pay the allowance and we'll write down the time out code. So every program, every interaction on the chain must be accompanied by what would happen if there was a time out. We refer to this property as kill safety. The idea is that your program has to be safe with respect to any participant refusing to engage in the protocol at every point going forward. So in this case what we're saying with this time out block is we're saying what if the parent never did this collaboration? What should happen? Now with these early stages of the protocol there's really nothing interesting to say. That's why they just end. But in principle as we go forward there's going to be more interesting interactions that are going to happen inside of the time out block. So now at this point we are now inside of the contract. The contract has access to the allowance and we need to go forward. The thing that we want to do going forward is we want to have a little while loop and this little while loop is going to repeatedly allow the child to ask for a fuss. So we'll write a while loop plus that we're done. Well the condition that's going to tell us that we're done is that the balance is going to be zero. When the balance is empty then the program will be over. Now while it's not some special variable we're going to have to do that. We're going to have to keep track of the balances. So we're going to say that while the balance isn't zero continue running this part of the program. So we'll define a new variable called the balance. It's going to be equal to the allowance. Now just so that we have something interesting to return what we want to do is we're going to keep track of how many times we said yes and how many times we said no running the program. Now how many times the child asked for money and the parent said no. We don't mean this isn't that important. We just want to keep track of something. And then that's the information that we're going to return at the end. One last thing that we need to do and it's actually kind of a big thing and you have a while loop. The while loop represents a point in your program where many many different things can happen. There's a version of this program that runs where you reach this point and the allowance was zero. And since the allowance was zero we never execute the code inside of here and we go right to the end. There's another version of this program where we run the inside one time and after running it one time all the balance is gone and then we exit. There's another version where we run it two times and so on. There's sometimes an infinite number of different ways to run a program that has a single while loop.  So this is a big problem for formal verification because how are we going to know what the program will actually do because the way to internalize what formal verification is is you're making a prediction about what the program will do. Now one way that we could do this is that we could automatically take the program and verify it for when we went zero times. Verify it for when we went one, verify it for when we went two, three, four, five, six, seven, eight, nine, ten, etc. What we would be doing is we would literally be like copying and pasting this code inside of the verifier over the overhand to verify each one of those different versions. That's called iterative deepening. An iterative deepening is what you do in situations where you can't figure out how to capture that into the paper. We do not do that. Instead what we do is we have a programmer specify a loop invariant. Now if you remember from your analysis of algorithms course where you use the CLRS book, this huge computer science book you probably learned a lot about loop invariants.  It was very frustrating. Most of the time though the key idea of a loop invariant is what do you know before the loop starts and what do you know at the end? So the thing that we know is that the balance in the contract is equal to this balance and if anything that we do inside of this makes it so that that statement is false, then we'll not be allowed to compile this program. And what this is going to do is it's going to allow the compiler to verify this more efficiently. We're going to verify everything above this to make sure it establishes that invariant. We're going to verify the inside to make sure it reserves it. Then we're going to verify the end so that it also verifies it. What this means is that we provide complete verification of an infinite behavior of your program by just proving three smaller theorems. Alright so now let's go inside and do some stuff. We're inside of the context of the consensus so we have to commit the transaction and now go back to the world where the two participants can do something. And the thing that we want to do is we want the child to do something herself. Where she's going to ask for a certain amount of money. And we know that this money will start to be classified and it's going to be a number and we'll interact with the customer, sorry the front end, to request the money. And the way that we're going to do this is that we're going to tell the front end how much money is in the account so it can know how to display to the user. Sadly do you have $100 available to you? How much do you want? This interact object is not only a way to get information from the front end, it's a way to share information with the front end. So it's a two-way street. Essentially what's going on is that this reach program is specifying the API to the contract, the API to the clients, sort of the API to the back end and then we'll write on some client code afterwards. Now the next thing that we need to do is write an assertion that's going to say that how much money is going to be in the account. And it might be smaller than or equal to the balance because this program wouldn't make sense if that were not true. This Assertion function right here is one of the verification assertions that we can put in. I mentioned before that there are different kinds of assertions that we can put in. Assertions are things that always can't be true and if they're not we refuse to let you compile. Assumes are kind of like require insolidity where we actually check this property at runtime but the other thing that we do is we make sure that all the assertions later on in the program are entailed by these assumptions. So later on in the program we're allowed to write down asserts and if any assert would fail because you forgot one of these assumes then we'll refuse to compile your program. The idea is that we're guaranteeing consistency between the clients and the contracts. We're making sure that your program at runtime actually verifies all the properties that are necessary for your contract to run correctly. So now what we'll do is we'll have the child publish the amount and we'll write in the timeout code. And the timeout code will be available to the parent to run and if she times out then we'll just say that it is an automatic ignore. So it's not a yes or a no but we just continue the protocol. So what happens here is that rather than returning at the end we say that all of the variables that the loop is iterating over they stay exactly the same and then we continue the loop to the next iteration. If we want to do we can say that if the timeout happens then it like goes in favor of the child that she gets from it. It's up to us to explain what we want to do. This by the way is one of the examples that the reach language is different from my earlier project the alacrity language. Because in the alacrity language the timeout blocks are automatically generated on your behalf. You're not able to but also you don't have to specify what they do. Instead they automatically end the protocol and give all the money to the last person in the contract. So now we're inside of the contract and we will require that how much is less than the balance. So this protocol only makes sense going forward and how much is not more than the balance. Now it looks like what we're doing is we're saying something twice. We're saying it up here and we're saying it down here. And of course we literally wrote down how much less than balance two times but we did it for totally different reasons. What we're doing right here is we're saying that this protocol makes no sense unless this is true. What we're saying up here is that I am a bad client if I don't check this properly and you have to specify both of those things if you want to have a correct program because you're writing down the client and you're writing down the contract. And one of the things that we'll do in the verification process is make sure that the contract only interacts with good clients. So if we left out this line then this line will fail to verify and it will say you need to have your client check with how much is less than the balance. Because of course in the actual and like your actual front end, you don't want to submit a transaction and have that transaction fail because you failed to check it before. So then we'll commit the transaction and now we're back to a local context and we'll have the parent go find out that she is approved. In this case we'll get back a Boolean because the interact object doesn't only return numbers it can return arbitrary information. So we'll interact and we'll say we'll all approve and we'll tell the front end here's how much she asked for and here's what the remaining balances. Then what we'll do is we'll publish that and we'll have to deal with what happens if there is a timeout. And we'll do the same thing as before whereas if there's a timeout, if the parent never gets along to it then in this case we'll call that a no and we'll continue. So now we're back inside of the context for the contract and now the contract knows the balance. It knows how much money was asked for and it knows whether the parent approves. So at this point we can actually make the transaction. So we'll say if the approval is true then we'll transfer how much to the child and we'll update our state variables. We'll say that the balance is less than than how much. We'll say that there's been one additional transaction that was a yes and no no's and then we'll continue. And otherwise what we'll do is we'll say that the balance is unchanged. The okays is unchanged but there's another no. And we'll continue. And then at the end we'll need to commit the final transaction when the balance is empty and then we'll return the okays and the no's. So we just wrote 63 lines and I hope that it felt not too weird. It doesn't feel like writing solidly. It doesn't feel like writing a smart contract. It feels like writing the whole down. In behind the scenes what we're going to do is we're going to automatically synthesize the front-end code and we're going to automatically synthesize the contract. Now let's go to the terminal and see what typos are made. So the whole type make build and what it's going to do is it's going to run the compiler. Oh, I made no mistakes. So I don't know about you guys but I'm a professor and a lot of times my students make mistakes when they write paragraphs. This is why you shouldn't hire them to write your verified compilers. You should hire me to write your verified compilers because I do it right the first time. Now let's go back and look at what we wrote. Now what if we made a mistake?  But what if we accidentally subtracted how much and then added one? There's an off by one error in our program. I've never made an off by one error in our program but I've heard a bit of it. So let's try to compile and see what happens. I'm suspicious that maybe it's not looking at this file. Hmm, okay. I'm really nervous. Let me just look at a different thing. What are the annoyances with doctors and sometimes it doesn't copy things you think it's going to copy? We'll hold on to talking about that for a moment. What I want to show you right now is what we made, what the compiler produced. So here's the directory and we'll look at the salivary code that was generated. So right now the reach language can in principle produce things other than a theory but right now we only target a theory. So this is the contract that came out. So this program, this contract is certainly laborious. So it's 152 lines. You can look at it if you want. It's in the mill directory if you're running yourself. And let's just look at like one little part of it. So let's look right here at message 6. So message 6 is a message that has all these parameters. And let's try to see if what's going on. So it says right here that it must have come from v0 that the block number is less than the delay going in there. The value has to be 0. This is saying that this is one of the messages that doesn't have a payment with it. So v17 has to be smaller than v8. That's how much v8 was the balance. Then what we do is we commit that and then update the state. So with this messages, this event number 6 is the sixth thing in our program which is this step right here. This publication right here. When the child says here's how much I want then we go to the contract and we require that how much is that. I realized by the way why the compiler allowed us to comment on that line. Because I actually commented on the line that was the assertion rather than the line that made sure that the assertion was right. So I believe that if I comment on this one we'll get there. Alright now I'm really nervous that something weird is going on. Sorry. So now let's look at the jobs we've got generated. So just the jobs we've got generated is the code for the child. So we get a new file that's called child that takes as an argument that handles for the contract. We'll see this get made later. And the interact object. And then it goes through and has each one of the pieces of the program. So we just make a new window for a moment. We can compare the two of them. So for example what the first thing that the child does. The child calls request on the interact object. Gives it the balance. So the very first thing is that we publish nothing. And then we're going to wait for the parent to publish the allowance. So if you look at the code the very first thing that happens is that the child sends and then receives message one with no information expecting to receive event one afterwards. Or event two if there was a timeout. We check to see if there was a timeout. And then what we do is we continue the protocol where then we expect to receive event three. And event three comes with this information that will end up being the allowance. So this rest of the code right here is no code that a human would ever write. But it's a very straight forward output of a compiler. It has wonderful things like let B9 equal zero. Because what's B9? B9 is the count for how many times we said okay. Alright so now what we've done is we've written our programming reach. We've compiled it. Behind the scenes it's done verification for us. And we now have the JavaScript code and we have the salinity code. But this JavaScript code that we have the only thing that it does is it provides these high level, these high level functions to spin up a child and to spin up the parent. We skip down. There's the limit of parent. And then we also invent the details of the contract. Now we only have eight minutes left. So we're not going to write by hand the front end code. Instead I'll show you the front end code. So what I'm going to do is I'm going to go out of the directory and go into the minimal directory. And go look at the index.mjs file. So the first thing that we'll do is we'll import the standard library. We'll import that multi-sync program. We'll say that our starting balance is going to be 130 because we're going to test this on them now. And then we'll script a new account for the parent that has that starting balance. And that's going to deploy the multi-sync contract so that the parent will deploy. Then what we're going to do is we're going to define the interact object. And for this first version, I'm going to say that the allowance is always going to be 50 either. So I just write this function that when you get the policy allowance, I'm going to be either. Now if we're making like a real application you know I might have it pop up a web browser window. You know what I mean? Like actually do a real interaction with the user. Then we're going to write our approval function and this is a really nice parent. Their approval function is true. Because this is just for testing purposes. Then what we'll do is we'll define that we'll go off and we'll run the parent function. So we'll call a multi-sync dot parent, give it this contract object that you're going to deploy, give it that interact function, and then we'll get back a promise for the answer that will eventually come out of the parent when it's done running. We'll do something similar with the child. We'll start it off with the balance. And just because I'm lazy in this test, I made the starting balance exactly the same. So it's a personal money. But the thing is that then you have some money to provide the gas rate. Then the child will attach to the multi-sync contract. And when you attach versus deploy, you have to say what the address of the contract is and when it was created. You need to know when it was created so that you know that it's not sending things the whole time out. Now the child, it's going to say I'm agreedy-tied but what I want to do, my request is everything. And then we'll ask for the parent who will make a promise for what the child will do. We'll await those two and then we'll finish. So let me just pop back for a moment over to the caregiver here and we'll make, run, spawning up a devnet, starting to get, waiting for it to be around. Let me make this the text bigger here. It's actually running it. Really nervous for my live demo. Now it ended and it said the parent thought there was one okay and zero no's. The child thought there was one okay and zero no's. So what this code shows us is that we have 28 lines and we're able to take our multi-sync program that we wrote and write the wrapper front-end code that deploys it. So this code is the minimal amount of drop-through code that we would need to write to have something useful. You would take this structure right here and you would build your unit testing library for this particular dev based on this. Now let me show you one more version that does a little bit more interesting stuff. So what this version is going to do is it's going to be 41 lines. So it's like twice as long. And what it's going to do is it's going to print messages about what's happening. And the other thing that's going to be different is that the parent is going to say that you can have any time you ask for money as long as you ask for less than half of what's left. We'll say yes. You can ask for whatever you want as long as it's less than half. And what the child is going to do is the child is going to ask for a random amount of money that is divisible by an eighth of what's left. So why am I doing this? Just so that it will print out less than half. The child will completely ask for random amounts of money in eighths until eventually it gets down to the point where there's only I think one eighth of what's left and then it will end. So this new version of the program is going to be more like exciting to watch. But really all I'm showing you is that I'm not developing that app anymore. I'm making a user interface. I'm making a policy for what the parent does I'm making a policy for what the child does. Maybe here is an automated policy but you could have it be instead not the automated one but one that is provided by a user interface. We'll walk back to the code for a moment and we'll build in that mess. And I just love text printouts. This is going to be my favorite part of the talk. Let me make the text a little bigger so that you can really experience this. So they deploy the contract. Okay, ask for it. Put it in 50, ask for it out. Okay, look at this. There's lots of transactions happening here. And then it's running for a while. Eventually it's going to get down to the point where there's only one left. It's going to take a while. We get lots of randoms. It's so close. And then we end it. The parent said yes 13 times and no 13 times. That's the reason that's the problem. So what we did today is we wrote an entire doubt from start to finish in 30 minutes. Now I wrote it. Maybe it'll take you longer than 30 minutes. And what Rich did for us is it abstracted over the decentralized action platform. In the Rich program there's no point at which I said here's this complicated solidity idea. Did I do call or is it transfer? Maybe it's supposed to be send. Let me go look at that Stack Overflow question again. These are the kinds of things that are done that are decided for you correctly by the compiler platform. The next thing is that we verify that the doubt is trustworthy. Or at least we would if my doctor configuration was right and copied the files correctly. So if you want I'll send you. We'll post the link to the version of this walkthrough where we show the verification conditions failing and then showing how to correct it. And it ensures that the clients and the contracts are consistent. Our 40 line reach program produced 300 lines of front end job search code and solidity code. And the details of those two programs have to be meticulously connected with one another to make sure that it executes correctly. Now obviously the 40 line version produced in 300 lines that has to be right. If you wrote a real program, not this little model, clearly it's going to be much more important in this part. Now, right now we have our data that has many different, many constraints. I don't have to talk about those with me later. And we have a release plan for over the next year to expand the set of features about it. I'm very grateful for you to have come here. Please check out our website, Resatization and please look at us on Twitter and all of the social platforms. You should really check out our Instagram account. I've got a really cute cat that's part of Resatization. And finally I just wanted to re-emphasize that Reach was originally a project that I worked on with the Lackere company. And Lackere is also an available tool that's based on the same principles. And yeah, so thank you so much for your time.


In 2016, 3 billion people and 25 billion objects will be connected to communication and information networks. We are nearer than ever before to a world in which not only people, but also things will be increasingly connected, opening up new possibilities to scientific research and the dissemination of knowledge. The penetration of the internet and technological know-how in the peripheries of the world are a great challenge, affecting the destinies of many inhabitants of the planet. The telecommunications laboratory for development at the Abdo Salam Centre of Theoretical Physics is full of unusual things, precision electronic instruments and metal workers vices, a diverse collection of items that brings theoretical physics back to the world of objects. Carlo and Marco are researchers and experts in the construction of communication networks in developing countries, which is technological innovation, but its low cost. There are also branches of branches or steel. These are antennas made with coffee bars, these are a bar of oil and semis. It is simply a milk cylinder. Inside there is the active part of the antenna, which is a small wire that splashes into the antenna. It is a standard connector to connect it to the radio. This is a working antenna with more or less comparable performance to a commercial antenna, which, in fact, was like a radio. Unfortunately, it is spread to many people who need a very expensive equipment or need to buy equipment from companies that provide closed boxes, let's say, that are functioning in which the user cannot modify anything. Our approach is the one for which the user has a role to play and therefore can modify things, can install things on its own and then have a relative role. Although it may not look like it, the laboratory is specialised in wireless communication. Its researchers have set up radio links in the remotest parts of the world, often achieving excellent results. In the Venezuelan Andes they set a world record with a connection through antennas of an incredible 380 kilometres. They use creative methods and hold courses in the poorest countries in the world to provide them with the best technology available at the lowest cost possible. They are an open team constantly enriched by new collaborations. I started working actively with the Centre in 1995 and I was involved in looking for a connectivity solution for the University of Leif in Nigeria. In the end we chose a wireless solution that was much more economical and much more effective for that particular application. It was the first country in Africa that connected to the Internet and with these steps they managed to attract a donation to develop their own University. Sometimes a small change can have notable effects, as it was in this case. Carlo and Marco live out of their suitcases much of the time. This time Carlo is headed for Kigali in Rwanda and Marco is on his way to Dakar in Senegal to supervise two courses being held at the same time. Co-financed by the International Telecommunication Union. The courses are on the functioning of short and long range wireless networks. The Kigali Institute of Science and Technology, familiar known as KIST, is the centre of excellence in Rwanda for the study of technology and IT. It is attended by young, ambitious, highly motivated people from the peripheries of the country. There is a very high demand with regard to wireless networks in Africa. We have got very few experts in this area for wireless networking. So we thought this is the right time for KIST to be able to host this event. The workshop for teachers and experts in communication technology for the use of wireless networks in Africa. This is the first time that KIST has been able to host this event. The workshop for teachers and experts in communication technology from several African universities will be held in one of its classrooms. The electrical coordinator is Professor Jonathan Wacagele, who specialised in the UK as well as in Italy with Carlo and Marco. He returned to Africa because he firmly believes in the possibility for his people to redesign technology autonomously and in an original manner. A number of technologies we've been using, technologies which have been designed in Europe, have been designed in America, but now it's our time also to participate. We have to be innovative. We've been receiving end, but I think it's a high time for us also to be able to contribute to the knowledge. We have to participate in a number of research so that we can contribute to the global world. The two weeks of intensive workshops deal with analysing the spectrum of electromagnetic waves and tenors, frequencies, the possibilities offered by short and long-range wireless networks, wavelengths and radio reception systems. Once home again, all the participants will organise similar courses, thus setting off a virtuous cycle of knowledge. Imagine, I've got this opportunity to come here. There are thousands out there waiting for what I'm going to achieve out here. So thousands of students are waiting for my return with the knowledge I'm going to take home. It is important to train the trainers for the sustainability programme because local communities, when they are empowered and have this knowledge, they own the programme, they feel motivated and it is easier for you to deliver the programme from generation to generation. The reason I am here for the workshop, this particular workshop, is because of the relevancy of the topic. Internet connectivity has been characterised as a human right and in Africa in general, there is very little infrastructure. So the only way to connect the masses to the internet is through cheap technologies like wireless. Just what we do now is to install the access points in the offices and some people or workers in the office can be connected through that access point. But I think it will be very helpful if we will use access points which can transmit to a very long distance. The universe is pervaded by electromagnetic waves without which life itself could not be generated. One example is sunlight. Even radio waves are electromagnetic waves and are a natural resource for long-distance communication. The waves propagate through the air, carrying energy and information to far-off places. A radio communication system is made up of apparatus for the transmission and reception of information. Wireless technology is the new communication tool used to connect a number of devices via radio. In information technology, it is used to create local wireless networks increasing the mobility of electronic devices and facilitating their connection to the internet. The ICTP experts use wireless technology for long-range connections too, known as Long Link. In Blantyre and Malawi, they have created an urban wireless network to connect some medical centres to the internet and to each other. Then they connected the medical centres to the makeshift clinics in remote villages, thus enabling prompt communication urgent diagnoses and continuous monitoring of data on malaria. In the country of a thousand hills, the internet connection of the villages to the capital could change the lives of many students, who today have to move to Kigali at a very tender age to be able to study. The financial burden for their families is enormous and often insurmountable. Like 90% of the students at the institute, Margaret lives on campus and pays the fees thanks to a government grant. I was born in Uganda in 1988. That's where my parents were living during their refugee. After that, we returned to Rwanda in 1994. I was six years old. Then I went to the secondary school in Kigali. Margaret and her roommates have earned their entrance to the institute through a lot of hard study and dedication and have no intention of giving up. These young women are ambitious and aim high and have a strong sense of responsibility towards their families and communities. After completing my postgraduate here, I'll be going far for the Masters and after that I'll do my PhD. It's long journey but I hope I'll make it because I'm not the first one to do it and I'm really interested in that. Margaret attended her first primary school lessons under a tree. Then the Tobago school complex was built. It still has minimum resources and no electricity but high hopes. Yes, Margaret was a very good pupil while she was here. She's now at KIST and I understand she's doing very well. By the way, we have got even a slogan here to our students and I think that's why they are doing well. We call them the ambassadors of hope. That's how we call our students. At the moment I was there, there was no library here and we used to read our own books only. I was dreaming to get higher and higher and to go to higher level. It required me a lot of effort. Even moving from one village to the city so so hard. Margaret's mother, a single mother refugee, sold a cow, her one and only possession in order to allow her daughter to study in the capital and pass a difficult entrance exam to KIST. There could be many more ambassadors of hope among these children if the school would come out of isolation one day. Now we don't have electricity and we hope the moment we get electricity we want to connect ourselves to the international world by having internet because it helps us in teaching and making research for teachers. So we are cut to the world but the moment we get electricity we want to be connected to the rest of the world. Although Africa is surrounded by girdle of optical fibres the development of data connection that is the internet is still intermittent in rural areas where it is too expensive to lay cables compared to the number of potential users. In these isolated areas commissioned by the Rwanda government one of Jonathan and KIST's former students is organising a programme of mobile training. The four buses equipped with 20 internet stations which travel from one village to the next to provide computer training to young people and farmers from the local communities. Just imagine like here we are really in a village it's almost three hours from Kigali but yet you can see people are using computers people are using computers and people are able to use the internet so we are seeing that it has not been just theoretical knowledge it's a practical knowledge that a student is able to pass also to the people in the village some of them maybe they will end up being farmers in the village so they have coffee, they have tea so having access to the ICT bus of course they will be able to compare the price of the coffee in town and also in the village so that business people cannot deceive them or cannot cheat them so they will know the price of the coffee. Knowing and having access to information is the secret to not being subjected to the tyranny of the strongest Kigali was unwilling to be left behind and tennis spring up all over the city contemporary totems of the connected world the capital of Rwanda is the city with the greatest penetration of broadband internet connection in the whole of the African continent President Paul Kagame has turned it into the safest place to do business in the heart of Africa partly thanks to the new technologies in a continent where growth in the use of mobile phones is twice that in the rest of the world the market is in enormous expansion but is likely to slip out of the hands of the Africans Margaret who learnt to read and write under a tree now chats online daily with the rest of the world the technological future of Africa is in the hands of young people like her provided that knowledge is shared with her at the end of this training activity we will distribute these five kits to five institutes represented here by the participants they come from different countries they come from Uganda, from Tanzania in our case from Zanzibar, from Mozambia many are Rwandan locals they will receive one of these kits for the rest of the world to be able to organise in turn each participant on the course will receive a copy of the guide for creating wireless networks produced with the contribution of the team and translated into 180 languages it will be accessible online, free of charge of course this is also when Carlo turns his hand to handiwork to make a container which will serve for transmission tests the free waves of the Wi-Fi will be used that is the narrow portion of electromagnetic spectrum which has evaded the market the piece of band not for sale as yet where information can travel freely and at low cost without touching the connector keep it here the fact of building antennas that can be trivial for a developed country instead the fact that a person is able to build his antenna and to show that it works it shows that technology is not something in the hands of the white strikers but it is really something that they can dominate and that they can really master when he is not travelling or at his home in Venezuela Hermano, together with his colleagues is based in Trieste in the eastern most corner of Italy a sea port where an icy wind called the Bora often blows in winter it is from here that the International Centre for Theoretical Physics or ICTP has propagated its free waves of knowledge for over 40 years the ICTP was born as a centre dedicated to theoretical physics and was the vision of the founder of the ICTP Abdul Salam the fact that there was no basic science like something that only rich countries could afford to face and this vision is still valid today because being lived in a developed country for more than 40 years I can testify that in fact the state of mind of these countries is that basic science is something that we don't need we just have to import the technologies of developed countries and try to adapt them to the conditions of the Third World The Trieste Centre is the only institute in the world which strives to share knowledge with researchers from all the continents regardless of their race, colour, language, religion or income so far it has supported more than 100,000 scientists from 180 countries through scholarships, workshops and conferences schools, affiliated centres, networks and visitors Thousands of these lessons and courses are freely accessible online and the centre considers the use of new communication technologies a fundamental tool for science dissemination worldwide Here the world's most promising physicists and mathematicians meet not only to teach but also to carry out high-level research The library and its aisles lined with books and padded with thoughts is watched over by the exponents of world science among whom is the founder of the centre the Pakistani-born noble laureate, Abdul Salam As well as being a great scholar Salam was also a very social and enthusiastic man With Paolo Budinich he succeeded in getting everyone to agree to the creation in 1964 of a centre where science could cross boundaries even those of the Iron Curtain and become the common heritage of mankind and not only of the most advanced countries What Trieste is trying to provide is the possibility that the man can still remain in his own country work there at the bulk of the year come to Trieste for three months attend one of the workshops one of the research sessions meet the people in his subject and then go back work there charged with his with new ideas for the rest of the year The most important point I've been stressing again and again we have been sold by well-meaning people and perhaps not so well-meaning people the idea that all we need is technology all we need is borrowed ideas take them back home the world supermarket of technology Lord Blackett my mentor at Imperial College that was his dictum there's a world supermarket of technology go and buy in it and take it back home that's just absurd technology simply does not take that way you have to have in every country a core of people with discrimination at the least if not more and that discriminating set of people is what we are trying to produce today the Cold War is over but Salam's spirit is still alive on the shores of the Adriatic Sea dialogue is an even more important value in the global world when no remote act is devoid of consequences for the rest of the system I started coming at ACTP since 1996 and through ACTP I made contact with people who helped me set up the first internet connectivity in the universities in DRC so ACTP has been very very useful for me in terms of setting up the network the academic network in DRC and also it's helped me also in finding contacts elsewhere in terms of my research work the courses in the laboratory never stop the important thing is to be networked to network and to keep updated the latest frontier of wireless communication is the internet of things not only man but also machines will be communicating more and more with each other wireless connected sensors will help prevent environmental disasters especially in developing countries the ones most at risk we are used to talking about internet where there are humans where there is a laptop where there is a computer but in 5 years or a couple of years the main inhabitants of the internet the members of the internet will be objects of this type when you set up a network of sensors then you need to have a network that is connected to the internet and you need to have a network that is connected to the internet and you need to have a network that is connected to the internet to be able to access these data from all over the world so we will use this wireless network that we have installed in Malawi to connect to hospitals to access sensors once created the wireless communication network can be used in various ways from health information to environmental information in Malawi several projects with sensors are being developed devised by local networks and sensors are being developed devised by local researchers who ICTP guided to excellence I first came here in 2006 and the main agenda for the workshop was to train us so that when we go home we should be able to deploy Wi-Fi links but for short distance because by then we had a telemedicine project furthermore in 2009 ICTP also gave me a scholarship to study for a master's degree in information technology with the specialization in telecommunication and networking in India currently there have been some challenges with the company that distributes water drinking water to homes and also to corporate institutes because they have storage tanks and over time people from the organization they move back and forth to collect readings of how much water is in the tank we want to deploy sensor network whereby this information on water levels could easily be transmitted using the GSM network so that these people they just have this information right in front of their machines without actually moving back and forth today Mayomiko teaches at the University of Blantar and has made wireless communication his life he is improving the living conditions of the community and has a great asset to his country the transmission of knowledge is made up of small gestures and will power which, organized together become long powerful waves that can change the destiny of many inhabitants on the planet


Good morning guys. Thanks for stopping back by the channel right here with me Kyle the rust belt mechanic and Today's the day that everybody's been waiting for see what is up with the Duramax truck. What it's been going on I've taken it down to extreme diesel performance four by four Down in Fairmore, Ohio Chris down there is a really awesome guy He's got lots of years of experience in doing these things.  Well this lift kit It's something that's very very intricate It's gonna take a lot of things that I often, you know kind of shy away from just because I don't have that experience in that area One being welding.  I've tried it once or twice before. I just I can't do it very well So I'd rather leave it up to a professional rather than have him come down to my shop and bring in We're just doing kind of you know a trade for goods. So I'm all one for helping him out He's all one for helping me out. It's a good old time at that point. So trucks down there and We're gonna do some filming on the whole installation process I'll get you some little snippets of how that process went the hiccups that we're gonna that we kind of ran into along the Way and all in general how awesome this freaking truck is You guys are gonna love it stay tuned This whole portion of the build started off when you know, I just got this idea where I just needed to do something extra The truck I've always wanted a lifted truck And this is something that I finally have come to fruition that I can actually do this This can be something that is mine and it's gonna be very unique So that's why I ended up going with what I did with the BDS lift kit with the fuel wheels and tires that I chose And in general the truck whole scheme that I've gone with with the Raptor bed liner It's mine. It's something that's very unique and something that you don't see very often I don't like being that quid pro quo guy who just does a build just to do a build You know just cuz I'm bored. No, I wanted to do it and I want it to be done Right. So when I took my truck down to extreme diesel and 4x4 down in Fairborn I gave Chris kind of a list of things.  Here's my money You know, I don't want to know the process.  I'm gonna be the guy who's gonna hang around I'm gonna be the one who's gonna help you out if you really need assistance in this you know one night we stood there till like one in the morning and We were trying to get these things figured out when you're in a lift kit like this You're gonna run into little issues the lift kits. They're made for a year range of trucks So it's not gonna fit exactly right, but you can get it damn close But those little damn close spots or the spots that I didn't really have time for in the shop atmosphere that I've met I'm working a dealership time is money. I'm not the big boss there. I I do the shop work I'm flat rate. So I can't say oh, I just need to take up one of these bays for like three and a half weeks No, I don't have that luxury of doing it on my own So that's why I ended up taking it down to him and when he runs into those little things You have to have that time and that ability to oh, we're gonna make something work You got a weld and extra plated You got to make a bracket because these traction bars don't fit for this vehicle Which is another thing that you'll see later on that we ended up running into they don't Hold on just right so you're running to issues if you have lift kits like this or you're thinking about these lifts kits You're gonna run into issues one of the other big ones that I don't know that I had told anyone else We had issues with tie rod ends the outer tie rod ends we wanted to go with a big PPE outer tie rod end those things are beefy and badass, but with the BDS lift kit evidently that doesn't say in the instructions, but They are not able to be used even with the factory tie rod ends You have to tow them all the way in just to be able to get any kind of fitment to it Otherwise the tow is gonna be way out on both sides So we had to end up going back with a factory tie rod end kind of sucks But we're gonna figure something out later on down the road Well enough of my chattering You guys really want to see the build so let's go through what was done to the truck So along with all this what else we have to top it all with with an MBRP four-inch Exhaust system Unbox it It's like a whole bunch of piping But it's gonna be a whole big old box of badass is what it's gonna be Let's get this put up in Let's start now here in the front end We the first thing you come to is gonna be that big BDS Skid plate underneath we had that coated with the raptor liner. We had the front cross brace done with the raptor liner Right here got the secondary skid plate and skid bar done in the bed liner and The rear bracket done as well You can see this BDS kit what I really like about it is it hides The torsion bars so the torsion bars do not sit below the frame rail Instead of having a bracket that drops them like way down Down in the back and uses the factory spots They use a bracket that goes on to the lower control arms in the front the torsion bars then go on to that and New hardware that tucks everything up into Here so it's all in the factory locations there As always comes with new hardware everywhere. It's got spacers here for the front axles Drops the front depth down Fox 2.0 shocks a dual steering stabilizer sway bar links There's that sharing me four inch NBRP exhaust step to the back here has the drop for the carrier bearing for the rear driveshaft and Then the custom part that Chris over at XBDP had to do was these Braces the front braces for the recoil traction bars. They really are not made for a quad cab long bed called down to The suspension shop and they're like well, you know BDS We kind of make these things for a wide variety of vehicles so some custom modification may need to be done Which is kind of a BS answer But you know, that's kind of the name of the game you play when you do this kind of custom stuff So the bracket for the front here had to be welded it on Chris welded it on and Had it nice and evened up because this body mount was in the way So there was very little modification needed to be done But he went ahead and got it done. You have to measure these traction bars out to a certain length to make sure That they are working correctly Recoil traction bars and then back to the Fox 2.0 shocks in the back Spacer blocks heavy-duty hardware comes with all these the brackets for the recoil traction bars go on to the bottom of the u-bolt brackets for the Spacer here in the back and then there's a spacer for a bump stop my truck for some reason didn't have bump stops what I think is the pretty sooner had air suspension at some time air helpers for towing like a fifth wheel and Just that's where the air suspension sat. So he didn't think to put the bump stops back in So I'm gonna have to get a set of those That won't be too bad There we go, that's pretty much it for the underside of the truck She's one sexy beast That's about all I've got for you guys today. This project has been absolutely amazing We are just kind of getting started on it I know we've done a whole lot to it, but I've got a whole lot more stuff rattling around in the brain up here Got some big ideas for it. We're gonna be doing some more performance things. We're gonna be doing add-ons We'll be touching up to the exhaust, you know, just a whole bunch of stuff So you guys have to make sure that you stay subscribed for that stay tuned and make sure you turn on that belt Notification so you get notified when I come out with cool new content a big Thank you again and shout out to the other guys who helped me out with this Chris over a extreme diesel performance four by four. He is awesome He was able to hook us up and get this thing dialed in just right with a lift kit And then ordering the lift kit make sure you guys don't forget about Jason over at bad attitude off-road I will leave the link down below to those guys and their shops for their lift kits and for their Performance needs for your diesel truck if you're in the Dayton area or such around Also, be sure to check me out over on Instagram. Do have my account over there over at Rust Belt mechanic I've just started kind of picking up things there Just trying to figure out this whole social media game, but I'm getting there slowly, but surely Thanks again guys for stopping by the channel again as always you guys stay awesome, and we will catch you in the next upload


Derek Wilburn as you as you approach the mic I want to just make a comment to our audience when you agree with the speaker and you stand up you are showing the board a consensus I guess that you agree with that particular speaker so again I encourage you if you agree stay stay by your seat but stand up okay that way we can see that thank you sir please go ahead good evening board I'd like to begin my comments tonight by reading a quote which in essence is the genesis of all of this black lives matter social justice CRT conversations we're having in our country today quote I am NOT going to stand up to show pride in a flag for a country that oppresses black people and people of color close quote Colin Kaepernick August 2016 I am the direct descendant of the North American slave trade both my parents are black all four of my grandparents are black all eight of my great-great-grandparents all 16 of my great-greats on my mother's side my ancestors were enslaved in Alabama on my father's side we were enslaved in Texas I am NOT oppressed I'm not oppressed and I'm not a victim I'm neither oppressed nor a victim I travel all across this country of ours and I check into hotels and I fly commercially and I walk into retail establishments and I order food in restaurants I go wherever I want whenever I want I am treated with kindness dignity and respect literally from coast to coast I have three children they are not oppressed either although they are victims I've taught my children they're victims of three things their own ignorance their own laziness and their own poor decision-making that is all my children we are not victims of America we are not victims of some unseen 190 year old force that kind of floats around in the ether putting critical race theory into our classrooms is taking our nation in the wrong direction racism in America would by and large be dead today if it were not for certain people and institutions keeping it on life support and sadly sadly very sadly one of those institutions is the American education system I can think of nothing more damaging to a society than to tell a baby born today that she has grievances against another baby born today simply because of what their ancestors may have done two centuries ago there are simply no point in doing that to our children and putting critical race theory into our classrooms in part does that putting critical race theory into our classrooms is not combating racism it's fanning the flames of what little embers are left I encourage you to support this resolution let racism die the death it deserves and let's keep living the life of a country that we own thank you


Appalachian Wireless is Appalachian Advantage. Unlimited text talk and two gigs of data for as low as $45 a month. Or if you like, get five lines on eight gigs of data for just $145 a month. Sea store for details. Better service, bigger savings. That's today's Appalachian Wireless and East Kentucky Network Company. It's festival season in the mountains and folks in Paintsville are gearing up for the 2017 Kentucky Apple Festival. Carnival rides are in place and vendors are setting up, getting ready for these nearly empty streets to be filled with thousands of people this weekend. Festival officials say the Kentucky Apple Festival is more than just an event. It's a homecoming. It's not just an event. A lot of people get together. This is one of the few times that you're there able to come back to the Paintsville. See their family and friends and catch up with a lot of folks. So it's a really big social event on top of all the fun they get to have and all the activities too. A lot of great arts and crafts here. A lot of nice flea market items and great carnival rides for the kids. So a lot of good food booths as usual. A lot of good entertainment lined up. We've got several concerts going here downtown. So if you can't find anything to do in Paintsville on Friday night, you've got a problem. The festival does so much more than just give people something to do. It gives the local economy a much needed boost. I would really love people to come down and just give it a chance this year and try it. It's going to be a little different. It's going to be beautiful weather. All the stores are going to be open and just support your local businesses. Support your local areas, your churches, your schools, everything like that because people do depend on that through the year. It's easy for small businesses when Apple Day is here. Without it, I don't know what I would do because it really helps me. It really does. For more information on the Kentucky Apple Festival, visit the web address listed on your screen. Reporting from Paintsville, I'm Sean Allen for EKB News.


ClickUp is back on top. They are setting up the gold standard for project management, and I just don't think anyone's gonna beat them. ClickUp 3.0 just shows that they are the innovators within this space and definitely the ones to watch. The inbox is just out of this world and it has completely changed my life. And now I can see all of the projects within the homepage. ClickUp is fast, 3.0 is efficient, and it's beautiful. ClickUp 3.0 is available now.


At this time, we would like to welcome United States Forces Korea Commander General and Mrs. La Camera, 8th Army Commander Lieutenant General and Mrs. Burleson, Gyeonggi Province Vice Governor Oh, Pyongtaek Mayor Chung, Asan Vice Mayor Cho, Cheonan Vice Mayor Park, former Combine Forces Command Deputy Commanding General, General Retired Choi, General Officers and Command Sergeant's Majors, Korean Officials, Distinguished Guests, Family and Friends of the Second Infantry Rock U.S. Combined Division. Today, the Warrior Division bids farewell to Major General David A. Lesbrons and formally welcomes Major General William D. Taylor. During today's change of command ceremony, Major General David A. Lesbrons will relinquish duties as the Warrior Division Commander to Major General Hank Taylor. Represented on the field today by their colors from left to right are the 8th Army Band led by Sergeant 1st Class Adam Carmody and Sergeant 1st Class Aladia Redenter, who are providing the music for today. Headquarters and Headquarters Battalion led by Lieutenant Colonel Brian Hannerhan and Command Sergeant Major Loomis Laurinaitis. The Division Artillery Brigade led by Colonel Alexander Lee and Command Sergeant Major Patrick Whiteree. The 2nd Brigade Second Infantry Division led by Colonel Chad Roorman and Command Sergeant Major Raymond Lathan. The Warrior Division Color Guard under the direction of the Division Command Sergeant Major, Command Sergeant Major Kenneth R. Franco. The 16th Mechanized Infantry Brigade led by Colonel Kim Kizu and Command Sergeant Major Kim Jeho. The 210 Field Artillery Brigade led by Colonel Brendan Tulan and Command Sergeant Major Artie Harreld. The 2nd Infantry Division Sustainment Brigade led by Colonel Lucas Hightower and Command Sergeant Major John Jerkins. The 604th Air Support Operation Squadron led by Lieutenant Colonel Raymond Kilroy and Senior Master Sergeant Jason Tomkinson. And the 2nd Combat Aviation Brigade led by Colonel Benjamin Boardman, Command Sergeant Major Donald Adkins and Chief Warrant Officer 5 Andre Kidd. The Salute Battery for today's ceremony is provided by Charlie Battery, 2nd Battalion, 17th Field Artillery Regiment, Commanded by Captain Gabriel Velazquez. At this time, the 2023 2nd Infantry Rock U.S. Combined Division Best Warrior, NCO, Staff Sergeant Nicholas Taylor of 2-1 Infantry Battalion, 2nd Brigade 2nd Infantry Division is presenting a bouquet of red roses to Miss Kelly Lesbrons. The roses are in full bloom which symbolizes our love and respect for her devotion and loyal support of the 2nd Infantry Rock U.S. Combined Division soldiers and their families. The 2023 2nd Infantry Rock U.S. Combined Division Best Warrior, Junior Unlisted Soldier, Specialist Jared Lasnik of 1-17 Infantry Battalion, 2nd Brigade, 2nd Infantry Division is presenting Miss Kristen Taylor a bouquet of yellow rose buds on behalf of the officers, non-commissioned officers and soldiers of the division. Yellow is the color of joy and friendship and symbolizes the relationship between the division soldiers and families. Shortly, the rose buds will blossom as will the friendships that will bloom during this Taylor's time with the division. Ladies and gentlemen, please stand for the invocation delivered by the Warrior Division Chaplain, Lieutenant Colonel Britton Price. Let us pray. Gracious Father in Heaven, we gather this morning to celebrate the Warrior Division and the successful completion of command by Major General Lesbrons. I thank you for his leadership, devotion to duty, and caring concern, not only for his soldiers, but also for his stewardship of the division's legacy. I thank you for your abiding presence that gave wisdom and discernment to him through many challenges faced and overcome, especially during the pandemic. You sustained him throughout his command, and I ask that you continue to be with him and his wife as they transition to their next assignment.  So I ask that you give that same wisdom and discernment to Major General Taylor as he assumes the position of Warrior Six and the burden of command comes to rest on his shoulders. Strengthen him for the task at hand to defend freedom and deter aggression in the land of the morning calm. I ask that you enable his staff and subordinate commands to ease that burden by our work and devotion so that this division can continue to uphold its motto of second to none and successfully fight tonight. This I pray in Jesus' name. Amen. Please be seated. Ladies and gentlemen, please direct your attention to the left side of the formation. There you will see the adjutant, Lieutenant Colonel Tiffany Hines, who will initiate the ceremony with sound attention. At this time, the commander of troops for today's ceremony, Colonel Wade German, the division chief of staff, will take his place on the field with the division staff, which includes Lieutenant Colonel Tiffany Hines, C-1, Lieutenant Colonel Lee Woo-Kyung, C-2, Lieutenant Colonel Chris Choi, C-3, Lieutenant Colonel Danilo Green, C-4, Lieutenant Colonel Kim Jin-Woo, C-5, and Lieutenant Colonel Thomas Taylor, C-6. Ladies and gentlemen, please stand for the arrival of the official party and remain standing for the presentation of honors. As a reminder, as the band plays honors, all military personnel will render a hand salute. The official party consists of Lieutenant General Willard M. Burleson, the 8th Army Commanding General, Major General David A. Lesbrons, Commander, 2nd Infantry Rock U.S. Combined Division, and Major General Hank Taylor, incoming 2nd Infantry Rock U.S. Combined Division Commander. For today's ceremony, Lieutenant General Burleson has deferred honors to Major General Lesbrons. At this time, Captain Gabriel Velasquez of Charlie Battery, 2nd Battalion, 17th Field Artillery Regiment is presenting Major General Lesbrons with a salute casing from today's salute battery honors. Ladies and gentlemen, please be seated. At this time, the official party will now take the field to conduct inspection of troops. The 2nd Infantry Division is one of the most decorated divisions in the United States Army. It boasts 40 Medal of Honor recipients and over 20 campaign participation streamers. The 2nd Infantry Division was organized on 26 October 1917 in France. During World War I, the 2nd Infantry Division fought at the Battle of Bellowood and shattered the four-year stalemate during the Chateau-Terry Campaign that followed. The Indian Head Division emerged from World War I as the most decorated American division. With the onset of World War II, the division moved to Ireland in October 1943 for Operation Overlord. On 7 June 1944, the division landed on Omaha Beach. Attacking across the R River, the division liberated Traviers and proceeded to assault and secure Hill 192. Exploiting the St. Low breakthrough, the 2nd Infantry Division advanced across the pier to take Tickenbrae. During the Battle of the Bulge from positions around St. Fifth, the division prevented the enemy from seizing key roads leading to Lige and Antwerp. The division arrived in Korea via Busan on 23 July 1950. The Warrior Division was the first unit to break out of the Busan perimeter and led the 8th Army's drive to the Manchurian border. The 2nd Infantry Division was awarded the Republic of Korea Presidential Unit Citation on 29 September 1950 for the defense of the Noctone River Line. In 1951, the division fought at the valley of Chippyeong-ni within attached French Battalion. Surrounded by four Chinese divisions for over three days, elements of the division and 1st Rock Division killed over 5,000 enemy, causing Chinese forces to withdraw. The Battle of Chippyeong-ni was the first major defeat for the Chinese in the turning point of Korean War. In April and May 1951, the 2nd Infantry Division was instrumental in smashing the Communist Spring offensive as they fought for hilltops in the Iron Triangle. The 2nd Infantry Division emerged as the most decorated division from the Korean War. On 1 July 1965, the division returned to the Republic of Korea. The 2nd Infantry Division was assigned to guard the demilitarized zone and help deter war on the peninsula. North Korean forces engaged in increased border incursions and 2nd Infantry Division was called upon to help. Throughout the 1980s and early 1990s, soldiers of the 2nd Infantry Division continued to patrol along with the DMZ. In November 2003, in support of Operation Iraqi Freedom, the 2nd Infantry Division deployed elements from Fort Lewis and in August 2004 the division made history by deploying to Iraq from the Republic of Korea where it worked alongside rock soldiers just as it had in Korea. Soldiers from the 2nd Infantry Division continued to answer the call in support of the global war on terrorism. The 2nd Infantry Division is the last permanently forward stationed division in the United States Army. As part of the ROC-US alliance, the division is spread out across the world. The 2nd Infantry Division's mission is to deter aggression and if deterrence fails ensure it is ready to fight tonight. Forged during the Korean War, the ROC-US alliance is an equal partnership committed to the defense of Korea. On 3 June 2015, the ROC-US Combined Division was activated in order to improve combined operations. The ROC-16th Mechanized Brigade partnered with the warriors of the 2nd Infantry ROC-US Combined Division stand ready to fight tonight. You are now seeing a movement known as Color Center March. This activity stems from early Roman days when the leaders laid down their weapons and shields and came forward to their Emperor. By doing so, the leaders signified to the Emperor that the officers of their command were loyal to him. In early American Calvary tradition, it was used to give troops special instructions prior to going into battle. Ladies and gentlemen, please rise for the playing of the national anthems of the Republic of Korea and the United States of America. Ladies and gentlemen, please be seated. Ladies and gentlemen, at this time the official party will take the field to conduct the passing of the Warrior Division colors. The colors represent not only the unit but also the unity and loyalty of its soldiers. They are the commander's symbol of authority representing his responsibilities to the organization. The change of command ceremony is a military ceremony that is rich with symbolism and heritage dating back to medieval times. Soldiers often carried staffs or standards into battle that identified them as a unit. Throughout military history, unit colors have marked the position of the commander on the battlefield and served as a rallying point. Whether attacking or rallying, soldiers would follow the standard or guidance of their leader, most often found at the forward edge of the battle. In more recent times, the colors represent not only the heritage and history of the unit but also the unity and loyalty of its soldiers. The colors are the commander's symbol of authority representing his responsibilities to the organization. Wherever the commander is, the colors are there as well. The passing of the unit colors represent the transfer authority and responsibility from one commander to another. The command sergeant major is the keeper of the colors. As the senior enlisted soldier in the unit, he is the spokesman for both the loyalty and the concerns of the soldiers and as the principal advisor to the commander. The passing of the colors from command sergeant major Franco to Major General Les Brons signifies his last act of allegiance to him. Major General Les Brons passes the colors to Lieutenant General Burleson, signifying that the unit is never without officer leadership. The passing of the colors from Lieutenant General Burleson to Major General Taylor signifies the passing of his trust and also the responsibility for the unit and its soldiers. In accordance with AR 600-20, paragraph 2-5, the undersigned assumes command of the 2nd Infantry Rock US Combined Division effective 16 May 2023, signed Major General Hank Taylor. Major General Hank Taylor passes the color to command sergeant major Franco as the keeper of the colors. Ladies and gentlemen, Lieutenant General Willard M. Burleson, 8th Army Commanding General. Okay, well, good morning and a warm welcome to our distinguished guests. General and Mrs. Le Camera, Mayor Jung, Vice Governor Oh, as well as all of our fellow general officers, commanders, command sergeant majors, as well as good neighbors. My sincere thanks to everyone this morning as we celebrate the warriors of the 2nd Infantry Division and the great service of Dave and Kelly Les Brons these past two years and the return of familiar faces of Hank and Kristen Taylor. So to the assembled soldiers on the parade field, I want you to take 30 seconds. Shake it out.  Shake it out a little bit. We only got a little bit left. This is the only chance you're going to get. Band, YouTube, cot. Come on, you can do it. Okay. All right. 5, 4, 3, 2, 1.  Thank you for upholding our traditions this morning. A special thanks to the 8th Army Band. You keep us connected to our Army traditions every day and, quite frankly, you're probably one of the most sought after resources in the Rock U.S. Alliance. Everybody, please join me in a round of applause for everybody out here today. So this division has a rich history over the last 105 years from the battlefields of Bella Wood and every remaining engagement of the First World War through Omaha Beach at Normandy and across the Rhine in the Second World War. And, of course, to the defense of the Noctongue River and the first victory at Chip Young Knee in the Korean War. The 2nd Infantry Division has been at the center of the U.S. Army contribution to this great alliance. Today's warriors are a great team and great teams require great leadership. We're here today to recognize Dave Lesbronce's outstanding leadership to the team for the last two years. But we're also here to welcome Hank Taylor as he takes ownership of that same responsibility. Dave, you've had a mission unlike any other division commander in our Army. You commanded the only permanently forward station division in the U.S. Army, a combined division. And this division staff, this combined division staff, can do things no other division in our Army can. The 2nd Infantry Division combined teams, recedes and integrates rotational forces on a regular basis. And your individual, through collective training, it's not just training. What you do every single day is rehearse. You rehearse your wartime missions. Your combined joint live fires and combined Apache gunnery training events built readiness across our rock U.S. alliance. You've established a foundation of readiness in division based on values, standards, character, and compassion. You've fostered an environment where leaders and soldiers can flourish.  And you're always an advocate for those arriving to Korea and they're experiencing here. And you've made a lasting contribution to our sponsorship and reception programs. Your impact is left a lasting and positive impact on the Warrior Division, but it has also extended well beyond the boundaries of the division into the community. My special thanks to you, Kelly. Kelly, thank you all for that you've done on behalf of our Warrior families and our communities. But also thank you for your years of support that provided Dave and allowed him the opportunity to continue to serve in such positions of responsibilities. Thankfully, Dave is not moving very far away. To the great benefit of everyone here, he will continue to serve the alliance as the next director of operations for Combined Forces Command, U.S. Forces Command, and the United Nations Command. Job well done, Dave. And I look forward to seeing you at the O&I in about two hours, as well as C.P. Tango. A round of applause for Dave Westbrox. Now, just a quick welcome to Major General Hank Taylor's wife, Kristen, and also their family watching on Facebook. The tailors are no stranger to Korea and the Second Infantry Division. A former commander of the Second Combat Aviation Brigade and also Chief of Staff of Eighth Army, Hank most recently served as our U.S. Army's lead for all things aviation. I can't think of a better way to break out of the Pentagon, Hank, than to return to the land of the morning calm and lead the great Warrior Divisions. Congratulations. As you've heard, the division has an exceptional history, and it's at the center of the U.S. Army's contribution to the Rock U.S. Alliance. It's a great team. You're inheriting a strong organization with a strong foundation, and I look forward to what you build next with these great warriors. To close, the leaders and soldiers you see here before you represent the very best of the United States and the Republic of Korea. They are part of a proud lineage of soldiers who've come before them, fighting for peace, security, and prosperity for our two proud nations. You can certainly count on them to fight tonight, Pacific Victors. Thank you. Ladies and gentlemen, the outgoing commander of the Warrior Division, Major General David A. Lesgrounds. General, Mrs. Le Camera, Lieutenant General, and Mrs. Bertelsen, distinguished guests, families, friends, and fellow warriors of the Second Infantry Division combined. Thank you for joining us today. Good morning and welcome. Please give another round of applause for the 8th Army Band and the salute battery from 217 Field Artillery. There's not a brigade commander on the planet that doesn't fear having the salute battery at a division changing command. So Chad, well done. You survived that test. To our rock Army partners and Korean friends of the Division, thank you for your unwavering support to the soldiers and families of this combined division. For over six decades, your kindness and generosity have sustained us in warrior country, and we would not be as ready to fight tonight without your support. We are honored to call Korea our home. Thank you for coming today. We sincerely appreciate your friendship and continued support. Most importantly, I want to thank the proud professional service members of the Division including U.S. Air Force and Rock Army Unit standing before us today. Each of you are key members of the combined division team, sharing the camaraderie that makes us warriors. And representing all service members who have gone before us and served today as members of this historic division. The transition you've observed is a time-honored tradition signified to all soldiers that there has been a change in leadership at the division level. And for all soldiers and leaders to know who their new leader is. Major General Hank Taylor is no stranger to 2ID having previously served as Talon 6. He is the right leader at the right time for this division. Hank and Kristen, welcome back to Korea and this wonderful division. For the leaders and soldiers on the field, you matter. Since 1917, the 2nd Infantry Division has helped win our nation's wars and for the last eight years, the 2nd Infantry Division combined has been the advanced guard of the Rock U.S. Alliance. I can't say enough about the incredibly cohesive teams in front of us today. They are innovative, they are creative, and they generate foundational combined readiness every day. 2 Tim Field Artillery Brigade Thunder is the only U.S. Field Artillery Brigade in the Republic of Korea. Forward deployed, Thunder has an incredible responsibility providing immediate, ready forces supporting United States forces Korea and combined forces command in a combined ground component command. In true fight tonight fashion over the last 18 months, Thunder has executed a number of bilateral response options to deter North Korean aggression. Setting a standard for how units should prepare for and be ready for combat. The 2nd Combat Aviation Brigade Talon is an incredibly lethal maneuver formation in the division and serves as the division's advanced guard in the sky. Conducting division reconnaissance, area security, direct fire, and movement of soldiers and other logistics requirements, 2CAB is always ready to answer the call to fight tonight and they always deliver. This division could not move without the hard work of the secondary infantry division's sustainment brigade champions for their absolute professionalism. This division lives on fuel, food, water, ammunition, repair parts, and more fuel. We will never have enough fuel champions. You will always keep us on the right side of that thin line between order and disorder. Well done. 2ID Divority is a pivotal piece of the warrior division. Team Strike enables this division to fight tonight through integration and synchronization of multi-domain lethal and non-lethal effects along with the division's headquarters and our supporting air support operations squadron. These service members demonstrate the future really is now. Second Brigade Combat Team, Second Division Lancer sees new high ground during their historic rotation. From supporting the expert soldier, infantry soldier, and medic badge competitions, combined maneuver training exercises, platoon and company live fires, the Lancer Brigade with their can-do attitude, generated and sustained fight tonight readiness maximizing every training opportunity. Lancer demonstrated you can generate readiness onto peninsula and sets the example for future Korean rotational forces moving forward. I couldn't be prouder of your teamwork. Our most lethal, our most lethal ground maneuver brigade, the 16th Mechanized Infantry Brigade Blitz proudly joins us today on the field. We fight with this magnificent brigade during conflict. The Blitz Brigade provides us an opportunity to develop interoperability best practices through tough realistic combined training we regularly conduct together. Blitz is the finest trained partner any division could ask for. Hank and Kristen, I am confident you are already vested in the spirit of Kachikapsida. It is the essence of everything we do in the Warrior Division. I know you'll be superb ambassadors for the division and will continue to build on the outstanding relationships we have with the leaders and citizens in our local communities. To all the warriors, I want you to always remember your personal efforts contribute directly to the stability and prosperity here in the Republic of Korea. I thank you for your service. Our division, our nation, and our alliance could not be better served. Kelly, you've been my best friend, confidant, and rock for whom our family stands upon. Your kindness and patience with me during these past two years have been no wavering. You put your heart into this division ensuring we're all welcomed with open arms. I appreciate your dedication not only to the combined division family, but to our family. I love you. May God bless you. May God bless your families. And the Iraq-U.S. Alliance. Seconded on, fight tonight, Kachikapsida. Ladies and gentlemen, the commander of the Second Infantry Iraq-U.S. Combined Division, Major General Hank Taylor. Hello, everyone. And I thank all of our distinguished guests here today. Thank you for your attendance. And most importantly, thank you for your support for the warriors and the families here in the division. Kristin and I are so honored to be back in Korea and specifically as part of the Second Infantry Iraq-U.S. Combined Division. Serving in Korea as a part of the greatest alliance in the world is truly an amazing opportunity for all of us. We have a real mission that brings us all together with a common purpose for good. As I pondered on the storied history of the division, I couldn't help but think about the many battles we have fought and honors we have earned over the years, as mentioned by PV6. I'm honored to be the 87th division commander, and I'm committed to serve shoulder to shoulder with all of you once again. To everyone who made this ceremony possible, Kristin and I thank you all very much. The 8th Army Band has a special place in my heart. You sounded great. Your history of inspiring troops on the battlefield continues here today. I'd ask you all as you look out onto the field and look at these great warriors in these formations. I know Dave Lesbronce and the team has made sure that they are ready to fight and win tonight. A special thanks to our Air Force team and our 16th Rock Mech Infantry Brigade, as Dave said, it does truly make this division special. And another great example of what the combined division can do for the U.S. and Rock Alliance. I'd really like to thank Dave and Kelly Lesbronce for the warm welcome and all the great teamwork that you offered Kristin and I over the last few months. As you know, the last 72 hours has been pushing it to the wheel to the limit. But I want to thank you for you and General Burleson and family for making it such a great welcome. I want you to know how much that means to us. The division is extremely well trained and a strong team because of your combined Lesbronce leadership. Thanks again and best of luck up at the J3. To the warriors on the field, our mission is clear and it is real. We must continue to do all those critical tasks as a team to ensure we're strong and we're ready to fight tonight. But more importantly, we're ready to win tonight. This last procedure in the most traditional part of the ceremony is the pass-in review. From the earliest times, the pass-in review has demonstrated the glory and strength of the assembled troops. Passing before you now are the proud soldiers of the Second Adventure Division. The commander of troops today is Colonel Wei German. He is followed by the division's staff officers consisting of the C-1 personnel officer, Lieutenant Colonel Tiffany Hines, the C-2 intelligence officer, Lieutenant Colonel Li Rukian, the C-3 operations officer, Lieutenant Colonel Chris Choi, the C-4 logistics officer, Lieutenant Colonel Danilo Green, the C-5 plans officer, Lieutenant Colonel In Jin Yu, and the C-6 communications officer, Lieutenant Colonel Thomas Taylor. Approaching the reviewing stand is the headquarters and headquarters battalion commanded by Lieutenant Colonel Brian Handerhand. The Command Sergeant Major is Command Sergeant Major Loomis Laurinitis. Approaching the reviewing stand is the division artillery brigade commanded by Colonel Alexander Lee. The Command Sergeant Major is Command Sergeant Major Patrick Whiteree. Approaching the reviewing stand is Second Striker Brigade Combat Team commanded by Colonel Chad Rohrman. The Command Sergeant Major is Command Sergeant Major Raymond Lathen. Please stand and render honors to the national colors.  The color guard is led by Division Command Sergeant Major Command Sergeant Major Kenneth Franco. You may be seated. Approaching the reviewing stand is the 16th Mechanized Infantry Brigade Commanded by Colonel Kim Kee-soo. The Command Sergeant Major is Command Sergeant Major Kim Jae-ho. Approaching the reviewing stand is 210 Filler-Tillery Brigade Commanded by Colonel Brendan Toulin. The Command Sergeant Major is Command Sergeant Major Artie Harold. Approaching the reviewing stand is Second Infantry Division Sustainment Brigade Commanded by Colonel Lucas Hightower. The Command Sergeant Major is Command Sergeant Major John Jerkins. Approaching the reviewing stand is the 604th Air Support Operations Squadron Commanded by Lieutenant Colonel Raymond Kilroy. The Senior Unlisted Advisor is Senior Master Sergeant Jason Tonkinson. Approaching the reviewing stand is the Second Combat Aviation Brigade Commanded by Colonel Benjamin Boardman, Command Sergeant Major Donald Atkins and Chief Warren Officer 5 Andre Kidd. Ladies and gentlemen, please stand and join us in the singing of the Warrior March and the Army Song. The words are found in the back of the program. Ladies and gentlemen, this concludes the Warrior Division Change of Command Ceremony. Major General Les Browns will remain in front of the reviewing stand for those who wish to bid him farewell. Please join Major General Taylor for a reception adjacent to Robertson Field in the reception tent. Second to none, fight tonight.