The daring and resourceful mask writer of the planes led the fight for law and order in the early western United States. Nowhere in the pages of history can one find a greater champion of justice. Return with us now to those thrilling days of yesteryear. Some out of the past come the thundering hoofbeats of the Great Horse Silver. The lone ranger rides in. When old John Cameron was forced to go east because of his health, he left Murph's Saunders in charge of the Great Circle Bar Ranch. And then six months later, Murph died. All of Sunset County wondered who his successor would be. Joe Kendall, who had handled Murph's paperwork, or Happy Eight's performance. The odds favored Joe because of his youth. But suddenly a startling announcement came from the east. Cameron had hired a stranger to the county. A young cattleman called Bill Adams. Adams had conferred with Cameron in Baltimore, and was how on his way to take charge of the Circle Bar. All of Sunset County awaited his arrival with great expectations. The stage pooled as a present for a lot of passengers who were continuing on to the west would stay overnight. Bill Adams was just starting down the main street to the hotel when an Indian touched his arms. Tonto, is our friend anywhere around? Him camp out of town. I'd sure like to see him. Him want to talk to you. Mr. Cameron said he was riding him in care of the project. A mass friend gets leather. You hire horse at Liberty Stable, spend night at camp. That's a wonderful idea. Let's go. One ranger's camp was in the hills above the town. After they had eaten, the mass man, Tonto and Bill talked far into the night. I've got so many questions I don't know where to start. I think Tonto like it has the most of them. What about the ranch? It's in good condition. You'll have a good crew. I won't have trouble with any of them. Why should you? You know your business. Yeah, but there's Joe Kendall and Happy Yates. Didn't both of them expect to get my job? Oh, Happy not one big manager. He wants to stay foreman. And Kendall's already quit. Really? I don't have a sheriff. He's just been elected. Well, in a position like that, he can still cause trouble. You must know that you're going to have trouble with a lot of people, don't you? Why? Because you've been ordered to fence the Circle Bar range. Oh, Mr. Cameron told you. Yes, that's the main reason you felt you'd need our help. Do the ranchers have any idea about what I plan to do? Well, they'll find out soon enough. That's for sure. What do you think about it? I believe it's a wise move. The county isn't right for farming. That won't stop homesteaders from moving in. And after they find out they've made a mistake, the land won't be any good for range, either. True enough. The difficulty will be in making the ranchers face facts in the future. Making them realize that days of the open range are past. I know the time.  I don't know. I should be staying at the ranch. You may need our help. I guess so. I guess so. Do you think I ought to start wearing a gun? You've been getting along with that one. Yeah, but...  For self-defense, you had no choice.  I won't either. Still, I'm glad that you and Tano will be somewhere around for a while. Bill reached the ranch the following afternoon and called over hands into the ranch house that evening. Happy Yates, Mr. Gundog, who was named by constantly looking on the dark side of the ranch, stood beside him. Quiet down, boys. Quiet down. Boss has something to say. I'm glad to meet all of you. Tell me there isn't a finer crew in the whole west. Oh, no. Don't get your hopes up, boss. They're a mangy line. Quiet down, you boys. Listen. Well, I want you to file homestead claims on every inch of ground in this valley. Homestead claims? What for? I'll just hear me out. I know you're not farmers and you don't have to be. The law says that if you file claim to a section of land and build on it, the land is yours. You don't have to farm it. It can be used for grazing. I don't get it. You mean we're not going to live in the bunkhouse anymore? You'll have to live in your cabins. You'll still eat up here. And that isn't all, though. I was afraid it wasn't. We're going to build a fence all the way around the Circle Bar Range. You can't mean it, boss. We'll start as soon as you file your claims. A fence in Sunset County? A fence all the way around the Circle Bar Range. Miles! That fence must be built. If you want to be counted out happy, that's up to you. You can draw your time with a two-month bonus. I've been here five years.  But this goes for everybody. The job must be done. Any part of it, you'll have to draw your time and clear out. Really? I guess the man would like a little time to think about it. Sure. Any questions you have, I'll be glad to answer. Did old man Cameron give you the go-ahead on this? He sent me here to do it, happy. I can't understand it. Probably gone stark, staring mad. He's smarter than either you or I. That must mean the poor old cooch near and near. The doctor say he'll be back here in six months. He wants to be buried. Well, most likely me and the boys will be sticking by, son. We'll file the claims and we'll build our cabins. We'll build the fence. Then do you know what's going to happen? The Circle Bar Range will be safe. Yeah, but we won't. Our rancher friends will have something to say about that. We won't be living all together here. We'll be scattered all over the valley. They'll get us one by one while we're sleeping. Write my words, Bill. There won't be a mother's shallow life at the end of the year. Right, right. The following day, Tex Martin's daughter, June, rode over to the Circle Bar and invited Bill to a dance to be given in his honor on Saturday night. Bill accepted with pleasure, welcoming a chance to meet his new neighbors. But during the week, the Circle Bar crew filed homestead claims. And the news that the Circle Bar Range was to be fenced in spread like wildfire through the county. Bill was branded as a traitor. Saturday night came and he grew rain in front of the Martin Ranch. He found June waiting for him at the top of the steps. Good evening, June. Mr. Ed, I didn't think you'd come. We're having a party all right, but you'd better not stay. Well, I'm not welcome. It wouldn't be safe. You're mighty unpopular with the men inside. There'd be gunplay. I don't carry a gun. I'd like a chance to talk with the men. I don't like your arguments. They got them from happy. I might be able to explain a little better. What is there to explain? It's simple enough.  You seem to be a nice hombre. But what you're doing is all wrong. No, June. You're asking for trouble and you'll get it. Your fence will never be built. And if you don't give up the idea why I... Oh, there's no more time to talk now. I hear Pa and Joe Kendall. They're coming outside. Kendall, sir? He's the worst of it all. Says he was elected to protect the rancher's interests and he aims to do it. I'm not breaking any law. What doesn't matter? Please, God. Oh, there he is now. Get out of here, Adam. There we are. There's only one way to deal with a fence built in Homestead and coyote. Over your gun. You're Joe Kendall. Yeah, the sheriff, aren't you? I'm not wearing my badge. This is man-to-man. Sorry, I can't oblige you. I don't carry a gun. We can fix that up. Give him one, boys. Thanks. Oh, yellow.  That suits me. Hold my gun, Tex. You're... No, you can't. Wait a minute. Inside the house, Joe. This is no place for you. Oh, you've got to stop them. Inside. Come on, you poach. Come again. I'm ready. Hard fight between two evenly matched... Each man put as much punishment as he handed out. The time came when Bill saw an opening to the sheriff's jar and gambling put all he had into a right cross. Kendall dropped to the ground and Bill turned to face a circle of hostile faces. Now, does anybody... anybody else think I'm yellow? No. It'd be a lot better for you if you were. Give me a hand with Joe, boys. We'll take him inside. Give me an only lesson. Get out of here, Adams. All right. That's the way you want it. Good night. I told Bill that he would be camped in a wooded canyon to the north of the circle bar spread. It was there that Bill rode. Oh, oh, he's here. Right, Bill. Bring her here at this time of night. Can you see my face? Yes. You bound the fight. Yeah. I rode over to the Martin Ranch party. Sheriff Kendall and I put on the entertainment. They're all against me. You knew they would be. And I still know I'm right. My boy's being hurt. They're all living out on their claims now, and... well, what shall I do? Go ahead, Bill. You mean that? Yes. We'll keep a close watch on the sheriff and the ranchers. They'll do our best to give your men protection. That's a promise I wanted. The ranchers make no move for several days, and then one midnight, Tottle rode into camp. Well, that's pretty hard, Kimosabe. Ah, that big meetin' at Martin's ranch. Time to get close enough, hear what them say. What? Connect. Ranchers with bandanas over faces. They'll go to Happy's cabin. When? Maybe they're on wait now. All right, let's go. As the Lone Ranger and Tottle near the shack where Happy was living, they could see a cloud of dust to the south. The ranchers were only half a mile away. There was no light in the cabin, but the Lone Ranger and you, Happy, was inside. His bronc was grazing near the door. Easy, easy, easy. That's the bronc, Tottle. Put on your boots. Kendall and the ranchers are on their way here. Okay, I'll take your saddle. Horsesaddle, let me back. You can see him comin' all right, splittin' the wind. You remember I told you this. Hey, you're not from the ranch, you're a mess. Never mind that, I'm a friend of Bill's. Horsesaddle, ready? Horsesaddle, ready? Horsesaddle, ready? Horsesaddle, ready? Horsesaddle, ready? Horsesaddle, ready? Horsesaddle, ready? Horsesaddle, ready? Come behind them. Happy's cabin have been fired. The flames could be seen from the ranch house and from the Lone Ranger and his companion, Grecia. Bill and half a dozen men were already traveling up on the main corral. The masked man and the Indian are friends of mine. That's what they said. They saved my life so I didn't ask any more questions. How come, boss? The Indian's name is Tato. The masked man calls his horse Silver. Does that explain it? The Lone Ranger. the ranchers are out to get happy. I would have too if it hadn't been for the masked man and the Indian. This means that your men will have to sleep in the bunkhouse from now on, Bill. You bet. We'll round them up right away. Oh, fine, Sheriff.  They were all wearing bandanas across their faces. I don't know if it was Kendall who talked him into this raid. In that price. And you all know why. Kendall had a personal grudge against Bill. Sure, he wanted his job. If you like nothing better, you didn't get rid of him. The building of the fence gives him his excuse. He don't scare us any more. I'm glad to hear it. We're sure how fast a fence can be built. Where will you build a hundred percent? We'll have to be on guard every minute. Bill, you'd better carry a rifle and a boot on yourself from now on. But I don't. It isn't the same as carrying a six gun. Your men are attacked during the day. You want to fight with them. Yeah. And don't ride alone. Day or night. Well, I made you a promise. I like when I return. Makes sense. All right, I promise. Will you see that he keeps it, Mr. Good enough. Maltese, watch out. But there were no more raids after that night. The ranchers were thoroughly ashamed of what they had done. And Kendall found it impossible to persuade them into any further violence. That was why he rode down to the southern end of the county one night. And there in the valley where the pines grew thick and tall, he met an old friend, an old friend and an outlaw who called himself Tombstone. There were over a dozen men in Tombstone's camp. Long time since you've paid us a visit, Joe. Yeah. Why now? What's happened to the long game you were playing with the ranchers? Oh, they're letting Adam go ahead with his plans. Not doing a thing to stop him. What about that raid last week? Nothing came of it. You still want to be the manager of the circle, boy, don't you? With Adam's out of the way, I would be. So you've come to see me. Yeah, we'll friend your best Tombstone. Well, I've never done business with a sheriff before. At least Badge don't mean anything to me. You know that. Maybe so. What's your idea? Just get rid of Adam's. If we were to take him prisoner, old man Cameron would pay healthy ransom. No, what's the sense of that? Dry gouching, that's all you have to do. And you'll pay me what? There's plenty. As soon as I get to be headman of the circle, boy, we'll leave a figure. Listen, now fix it so you can drive all 500 head a year. About? You sure you'd get the job with Adam's out of the way? I'm certain. That'd be worth a try. All right. When? Just leave everything to me. You'll find out when, when it happens. Three days later, Happy and Bill load along the boundary of the circle Bahrain toward a wooded arroyo. Get in guys, boss. I want to show you where to run the fence along here. May I be a promise to the mask man? I'm not alone. You're practically alone. I think I'm in mighty good company. See that draw? Yeah. Martin's coward used it in the water hole. We'll run the fence this side of it. Let's give Martin a break. Don't be fair. Look out, they're shooting from the door. Martiners have already fallen when the moon reins are in trouble, found Happy lying on the ground. Oh, he's very well. The call hand groaned and sat up as they drew rain beside him. Oh, my head. He's been wounded. Bullet creased scalp. What happened? Ambush. I was riding with Bill. Where is he? Where's Bill? He isn't here. Yeah, sure. They didn't kill him. Doesn't seem likely. He may have been taken prisoner. Who would do a thing like that? I don't know. I don't think the ranchers would. I'm sure they wouldn't. Don't don't expand it. How does any tracks around follow? Oh, there are plenty horses here. I'm head south. Any chance of following the trail? I don't know. They're rough country for some. Perhaps the best thing to do would be to report this to the sheriff. Handle? I think he's responsible. You might be able to find out if you talk to him. Maybe. And watch his reactions as you report the ambush. Yeah. And Bill's disappearance. Tell me, are you strong enough to ride? Ah, sure. Well, maybe hurt a little, but it gets better fast. Yeah, thanks. I don't know.  Come together. Here, let me help you up. There. I'll allow a ride with you. We'll wait outside the office. All right. All right, let's go. The lone ranger and tautel waited in the shadows of the building across the street from the sheriff's office when happy went inside to report the ambush. He came out again in less than 10 minutes and ran over to the masked man in the Indian. Well, that's funny. Really? Yeah. First he took it for granted that Bill was dead. I told him he disappeared. He almost went berserk. What did he say? That he was going to follow the trail himself. I said he might need a passing. Got a whole crew and ride with him. He said no. He was going alone. He'll bring him out of the office now. Yeah, there he goes. Straight out of town to the south. I'm just going to pick up the trail if he don't go out to Martin's draw. He doesn't have to follow any trail. He knows where he's going. Get that drink, Tullo. Mark the trail for us. You bring Posse? The ranchers. That's good. Come on out here. First stop will be at Martin's.  There's Tex and Julia in the porch. Who's that? He's happy. But the armory women. Keep in tact as he's mad. Don't go for your gun, Tex. This is a friend of mine. A friend?  The night that you tried to kill me. Right. Yeah. No, no, happy. We never meant to do that. It's scary, and that's all. We wouldn't have done that.  I guess maybe I am. But who are you? Happy told you, a friend. We've important business. You see, Happy and Bill were dry goats tonight. Did the ranchers have anything to do with it? Oh, my honor, no. Bill, did they kill him? We don't know. We're hoping he's been taken prisoner. Will you help us find him? Sure, and all my hands, too. But where are you going to start to look? We have a trail to follow. Let's make it fast. Sure, I'll hurry. The lone ranger led the Posse south. That was a mean one. It would have been impossible to follow the trail if it hadn't been for Tahoe's signs. At last, after two hours of hard riding, they saw Tahoe waiting for them on the edge of the forest. Oh, oh, oh. Hi, you. What's happy? Hi. The horses here. Crooks make camp in the middle of woods. How close can we get without being seen? The tree is plenty thick. You be careful when you get to edge the clearing. Maybe you hear them talk. Have you seen Bill? Uh, him prisoner. Wounded. From the sheriff. In there, too. In her fight with Tombstone. The leader of the outlaws? Ah. What's this about the sheriff? You'll find out, Jacks. Careful, everyone. Don't make a sound. It's the Father Tahoe. It was so dark in the forest that each man had to hang onto the belt of the man in front as they followed Tahoe. But at last, they saw a campfire flickering through the trees. Silently, they crept forward to the very edge of the clearing. Kendall and Tombstone were standing face to face with the other outlaws around them. Bill Adams lay on the ground beyond Tombstone, a bandage around his head. His hands tied behind his back. Who's stone will you listen to me? Put a bullet through him.   But if you don't, I will. Go for your gun, and you'll be one sorry gent. I can outdraw you any day in the week. Now listen to me. Even if Adam's out of the way, I don't think you'll get the circle bar job. So we get in touch with Cameron, and find out what his manager's worth to him. Oh. The double cross, then. Yeah. Thanks for tipping us off. Thanks for telling us how valuable. Let him see. Oh, yeah, daddy. Not a chance. Quickly, Joe Drew his gun. The muscle pointed straight at Tombstone's heart. But not a trace of fear showed in the outlaws cold, gray eyes. If you see Tombstone, you were all about my draw.  Your men might like a new leader. Yeah. This son-of-a-bitch right name is Kino Kenyon, boys. No, I'm from Merger, Missouri. What? Turn them over to the law, get her alive. You all get pardoned. Now wait a minute for that.  You're safe as long as you don't try to interfere, Tombstone. It's Adam's time to guess. Well, I guess we won't stop you doing that. Let's stick to the original deal. All right. Stand aside. Now, Adam. Tombstone's right. You'd better shoot if I leave your hand. You probably will anyway. Oh, no, I'm going to. Oh, man! What? Open your hand! Oh, no! They're going to Tombstone. Hand me out of these ropes for the second VMI on a mission with your neck off. It will be. Now that we know who you really in. Kino Kenyon, how could we all have been so wrong? Does that mean you admit you were wrong about the circle bar fence there? No, sir. The end of the open range means the end of ranching. You talk about barbed wire as if it were a dagger in your back. That's a good way to put it. No, it isn't true. Tash, you admit that Sunset County is good range land, but that it would make poor farming country. Of course. That's why homesteaders will never bother us. And we don't need fences. Tell him what happened in Spring Valley, Bill. The ranchers there felt the same way you do, Tex. The homesteaders came anyway. They defiled claims. They tore up the side. They soon found they couldn't make a living there. Now the valley's been ruined for grazing. The same thing can happen in Sunset County, Tex. Think. Think about it. You must recognize your danger. Face it and defend yourself. That's the only way you can make your future safe. Come to Spring Valley. Go. Thanks, tunnel. You did a big call. Adios, sir. Adios, rest man. Recognize your danger. Face it. Defend yourself while there's still time, Tex. To make the future safe. Good advice, isn't it? Yeah. Yeah, and I'll go along with it too. Happy, who is that mask man? I told you, Tex. My friend, your friend, everybody's friend. He's the lone ranger. You're incorporated. Created by George W. Trenville. Produced by Trenville Campbell Enterprises. Directed by Fred Flower Day. And edited by Fran Striker. The part of the lone ranger is played by Brace Beemer.


This is what I find to be the easiest color combination that anybody can pull off, and it so happens to be my favorite color palette as well. I wear it a lot, okay? It's not much effort. Please don't make fun of me. This works in the spring and summer. This works in the fall and winter. No seasonal discrimination over here.  So let's throw it on the body. I've got three outfits for you guys to show off this color palette. This first outfit is the definition of my style. Well, all of these are, but this is what I'm really into nowadays, and that is the street tech look. Basically a happy middle ground where street wear and tech wear meet. Orange mustard beanie, simple. Top is a plain black hoodie. This is a little more slim fitted. Definitely not no gym shark, skin tight, sausage looking fella. We've got on a Uniqlo ultra light down vest. Perfect for the colder days of fall. Definitely insulates you a lot and is going to keep you warm. By the way, I'll try and link everything I wore in the description down below. Pants are the Nike Lab ACG deploy cargoes. You guys hear me talk about these a lot. I'll make a video breaking these down more in depth and the vans checkerboard slip-ons. And if you think these don't go with tech wear outfits, well, you see them quite often actually. And topping off the fit, this is optional. I'm throwing on a Uniqlo shoulder bag. This is plain, sleek and simple with Uniqlo's block tech technology, making it waterproof and has a great carry for short trips. I threw this on for some more texture with the layers and of course it is functional. You know, I can carry my laptop in it or go grocery shopping with it. You could really throw it on with the other outfits I'll talk about later because it is that versatile. And bam, checked off the techish fits. Let's move on to the next one. This next one I wore skating the other day. These are items I'm totally cool with destroying if I ever fall. Top is another hoodie, but a graphic one. Excuse a fur, that comes from my dog. This is a Breaking Bad inspired hoodie from the official Breaking Bad store in Albuquerque. Greatest show of all time. Don't at me. Big shout out to my hometown. And we're gonna keep it oversized for this type of fit just for mobility reasons. Pants are the 511 Tactical Apex Cargos. I'll talk about these more in another video. These pants are olive brownish. I can't really tell, it's kind of like a mix of both, but let's just say it's olive. And we will also throw on the Vans slip-ons as well. That's this picture I posted on Instagram, but the Nugget 2's will also work with this outfit. So let's roll with that. Cuff the pants with black crew socks for a cleaner transition to the sneakers.  Might also carry a tote bag too but this kind of fits, definitely fits the vibe. And you can also utilize a tote bag to go shopping as well. Last but not least is a simple fit for chilling. Let's start off bottom to top first. Sneakers are from Oliver Cabell. These are the greatest alternative to the common projects, way more affordable. And it has the same exact quality from my experience. A lot of my friends have common projects. And these feel exactly the same. Pants are just plain minimal cargoes from essentials. And these are probably sold out. So great alternatives are from Levi's or Uniqlo. Or you can roll with any of the other pants I mentioned earlier. This shirt is a Carhartt long sleeve, keeping it oversized because fitted clothes, especially during quarantine just ain't the move. I'm trying to stay comfy out here. But you could also do it if you'd like to. It's totally up to you. That's how versatile this color palette is. And I got the same beanie on by the way, it's from Amazon. And to make the fit a little more complete, I'm gonna throw on a simple necklace from the sponsor of today's video, Rolls Golden Black. So Rolls Golden Black is a brand that makes great jewelry for men. Just like these outfits, the jewelry they have is simple and easy to throw on. And I'm always gonna recommend their minimal bar necklace always. But they've also come out with new necklaces as well that are also simple and minimal. It's an easy go-to item that'll go with pretty much any outfits or any style of your choice. This outfit in particular, I feel it just needed it. Because there isn't any extra layers like a hoodie or a drawstring or anything to give it depth. Hence why I threw on this necklace. And yeah, it really makes this outfit a whole lot better. So go ahead and hit the link in the description. It's gonna take you guys to my special landing page. Oh, would you look at that? I'm wearing a similar outfit. And everything's gonna be heavily discounted there.  They've got geometric necklaces, the minimal ones, very simple ones. Just check out Rolls Golden Black and thank you guys in advance for your support. And thank you, Rolls Golden Black, for sponsoring today's video. This fit is easily something you can wear meeting up with your friends or running some errands or just shooting a YouTube video like I am. So as you can see, I swear by this color combination, give it a shot. Follow me on Instagram at flowerjohnytie to stay in touch and subscribe.


Today is National Voting Day for the 2018 midterm elections. BU students from around Massachusetts and the entire United States will cast their votes on campus at the Killett-Chin Hall polling station. I've heard from some people, oh, you complain about the country is all the time, why are you even feeding into it by voting, well, that's the one way we can change it. My vote really might not matter, but there's that little bit of hope that maybe it will. While many students find voting an easy process, others are struggling to cast their vote. I saw on these Instagram that if you were a mass resident and you're registered to vote, you could come to Miles and vote. Then I get to Miles and the security guard tells me to come here. And then I come here and they say that that's actually not a thing. So they had me register to vote up here, but I can't then vote in this election. I'll be able to vote in like an election next year. It would be so much easier and I feel like make people more likely to do it. Questions one and three on the ballot were the key drivers for student voters today. I think question three and question one were both very important because I think, you know, gender identity is an important thing to protect. And question one deals with like, I think it was how many nurses can be assigned to one patient at once. Organizations like Yes on Three have been promoting students to vote since the start of the school year. And just on election day, we're doing just like a last final push. We're asking voters as they go into the polls just to remember to vote Yes on Three. We're also tallying, making vote plans with voters out here. And we're tallying people who come out and tell us that they voted just final numbers sort of stuff. BU students from all around the country are casting votes today, either through absentee ballots or at polling stations like right here at BU's Killichand Hall. For BU News Service, I'm Adalyn Davidson.


Hi, and welcome to the CSS podcast. This season, we're answering your most burning CSS questions. And today, we're covering a very common CSS issue, which is, why isn't my custom property the value that I expect? CSS variables seem straightforward on the surface, but there are times that their behavior may surprise you.  It's in these moments that it's good to know how the browser computes these custom property values and why you're running into those issues. Excellent. Yes, this is especially important as more and more complexity is moved in the orchestration of custom properties. Our design systems are getting crazy in there. It's awesome. They are. Yeah. So many layers. Although the Almanac did that search, and it said most people only do a flat set of custom properties, I bet you this year, we're going to see the depths going up to three or four or five nested custom properties. Well, anyway, today's episode will help you prevent surprises and help the health of the design system. The types of problems you have with custom properties can be pretty quickly listed, but explaining them takes a little bit more work. But that's why you're listening to the show, right? Anyway, here's a quick overview of the common problems you might run into with custom properties. They might be undefined. They might be wrong. They might be invalid. And they might be invalid at compute time. Ew, compute time. That does not sound like a friendly term to learn. Those all are just different words that are saying they're incorrect, unexpected. But there's different reasons that they might be unexpected. And there's also a few different reasons why you'd run up against some of those custom property value issues. And those reasons vary, too. First, you might be misunderstanding where the value is resolving in the CSS cascade. You might also be confusing different types of values, like declared, cascaded, specified, computed, used, and actual values. And there's also different times, like parse time, compute time, and use time from when you're actually leveraging those custom property values. And when the browser is reading and interpreting them. So there's lots of stuff going on with custom properties. It's true. There's a lot of value types. And you'd think it's like it's holding a string. Just make it simple. And you're like, ew, you'll hear it. It can get pretty complex pretty quick. But if you need a review of custom properties, we do have episode 46 for a nice recap of some of this stuff. And as a quick summary of that episode and just the different ways that you can create custom property values, it's essentially three ways. And we're not even going to get into all the complexity of these ways. We're going to mostly going to talk about string-based custom property values, because those you run into a lot of issues with, even on their own. But there is the first way, which is just creating custom property values with that double dash prefix and giving that custom property a value. This would be a string-based custom property value. You can do this in CSS. You could do it inline. You could do it through JavaScript if you wanted to. So there's a lot of ways to do this. Then there's also registered custom properties. So you can use app property to give the custom property a name, syntax, default value, and specify if it inherits or not from its parent. So even within that, there's a load of complexity. You might specify that it doesn't inherit. And then you expect inheritance. And then be confused on why that's happening. And then finally, you can do the same thing with registered custom properties in JavaScript by using CSS.registered property, which is a static method that lets you define a custom property with the attributes that I just mentioned. So you might have custom properties being registered in different places. And you might have overlap there. Well, if you're not confused enough yet, we've got to break down the lifecycle of the resolution of a custom property. And we're going to hopefully make the spec a little easier to understand. But Yuna listed off the different value types earlier. And we'll give a kind of brief definition to those right now. So why don't you start with our first value type for custom property? Yeah, sure. So the first value type are just declared values. And that is what you, as a developer, author in your style sheet directly or in line with the element that you're applying the style to. So next, the browser finds the cascaded value for this. And it's going to choose the winning one for that value that wrote, right? You could have it written five times in five different locations. It has to use the cascade to decide which one it's actually going to move forward with. So then you might have a specified value, which are often the cascaded winning value. But if there's no cascaded value, then it's the defaulted value. Then next, we have computed values. They use the specified value and then resolve it. It's an abstract data representation, given the context and the surrounding declarations that the browser has to help resolve this. This could be like determining what two REM actually is or the value of the keyword bolder, like what does bolder actually mean? What does two REM mean? So any relative value is computed here. This is also true for relative URLs, which we'll cover later. Yeah, I like those examples there. So you may also have a used value. And while every element has a computed value, like Adam just mentioned, not every element will have a used or actual value. But you could have a used value if you have any remaining calculations to be done. So the used value will take the computed value and it completes any additional calculations to make it an absolute value. So it'll be the outcome, the used value of a computed calculation. So if you were using REMs, for example, in a calc, you still have to adjust the calculations or if you're using a relative unit like a percentage in a calc, you still have adjustments to be made to get that specific, absolute value that you're applying. And then the last one here is the actual value. And these are the used values. So most of these values, as we went through them, they used the previous one that came before it. So the actual value uses the used value, which used that computed value anyway. And these are after all the adjustments are made and this last final process of actual value probes the used value and uses as much from the document as possible to determine the actual value. So it's almost like a final pass. Like, are we sure this is the value? Cause this is going to be the actual value we send around to the UI and they're like, yeah, let's do a final probe. Anyway, so that's called the actual value. So now we talked about all these values. We talked about the different ways that you might write custom properties, different ways that you might define errors from custom properties. Let's take a look at a real scenario. A really common scenario for custom property frustrations is, say you have all of your custom properties in your root scope. So an example would be, you have your root and then in that you set color primary, say it's red. And then you have custom properties that rely on other custom property values or maybe a calc or something else in there, like color button primary. And you might set color button primary to var color primary. So now you're referencing color primary in the root from color button primary. And that's okay. So if you use color button primary, you will get red. If you use that on the button, you'll get red as expected. But then if you wanted to create a modifier like blue button, like say you have a class of blue button somewhere in the file and then you update color primary to blue, now if you call color button primary in blue button, expecting the button to be blue, it isn't. It is actually red and it's out of scope. It doesn't actually update that root scope and then go back down. The problem here is that you're expecting a child selector scope to update a parent scope. So you're assuming that custom properties are fully reactive in this way, whether or not. And there's actually a CSS tricks blog post on this called the big gotcha with custom properties, which we linked in the show notes. And fortunately, there are a few ways around the issue and there are three resolutions that actually change where the used value is, which is what you want to be referencing and updating here because you have a reference of that custom property. Yes, excellent, excellent explanation. I almost combined those words together. Explanation, the excellent D thing. I don't know. Anyway, this first solution though to this particular problem, which also comes in all the times like opacity. Sometimes you're like, Hey, I changed the opacity variable, but my color is not half opaque. Like what's the deal? And so the first solution here is to scope the variable. So in this term, in this example, the variable we're talking about is color button primary. The one that we wanted to switch to blue in a child context, you want to scope it to where you're using it. So where it was previously defined in root as color button primary referencing var color primary, we could scoot that entire definition down into button. And then when your variant changes the custom property of color primary, that is within the scope of where it's being used. So you're changing the used value to where it's actually being located as opposed to trying to put things up too high in the root scope. And so this manifests like, instead of expecting a scoped to root custom property update, you're just defining it at that nested part. So that's the crucial part here is you need to define it at the nested part, define the reactive one that wasn't reacting like you thought. And so you have a selector with a button called like half opacity brand. You use props from root, but then as each of these buttons need variants, you have to redefine them so that they get updated. It's that computed versus used value issue. And so that's how you get around it. Yeah, that's probably the solution that I would choose also is just to change where that scope is. But another thing that you can do is scope this in multiple places. So instead of just applying these properties in the root, you could do colon root comma button and then have the same custom property values there. So this is kind of funky, but it fixes the problem and it makes the initial definition get a bit fuzzy, but it is now scoped in two places so you can access it and you can trace it. I don't know if this is going to work for everything, but if it's something that is specifically related to button that you also wanna be available in the global root, this might be something that you do. I wouldn't do this for all of your custom properties. Like you don't wanna have like colon root comma button comma P comma, I don't know, div. That's probably gonna get too crazy. But if it is something specific, like in that example, this can work as a solution and it will fix the problem. Yeah, I agree. I'm not gonna use this solution, especially like it's just kind of, it's funny. The name of the custom property has button in it. It's almost like you knew the whole time you should have defined this at the button level and not the root level, but you're trying to put stuff open. Have global variables. Have some global button variables. You're like, hey, maybe a card background wants to be the same colors of button. I don't know. Anyway. And that's a good call. That's probably the best place to put this and to organize your structure is to have your global values in the root. But then if anything is specific to all of one type of element, it might be better to have those definitions reference the root above, but be defined in the same scope as the other elements that will be using those references. Yeah. The last one here. So you don't mention putting a comma in your selector. So it's colon root, then your context that's your nested child context. Or you can just put them on star. And you see this happen all the time.  Open props is gonna put things on star for like shadows that way. Every time you use a shadow, you can tint it to a different color. So the only thing to be aware of here is that there are some performance implications. You can't put too many things on star because you're literally redeclaring every custom property for every single element over and over again. And that's just asking a lot out of the browser, especially if you have a lot of nodes in your document. Yes. The number of nodes is a huge player here. So keep that in mind, especially if you're working on like a site that server renders a lot of content, the nodes will grow as content is rendered on the site and it might affect performance of styles that you might not make that connection because you wrote them one time and then you have your DOM separately and if that DOM grows or is an unknown size, all the CSS problems grow exponentially with DOM size. So something to look out for. Another scenario that you might run into is when you're trying to concatenate custom properties with units or using unit list custom properties like in a calc function. So say you have as an example the following custom properties. So you have a value custom property, so dash dash value and it's two or some numeric value. And then say you have a unit like dash dash unit and it's REM. So you might try to do something like font size, if you had a calc, var dash dash value plus var dash dash unit, but this doesn't concatenate to two REMs. It just doesn't work like that. Even if you're thinking that these are both string types, calc just doesn't work that way. However, you could change the value of unit from just REM to a value like one REM, two REM, three REM, like an actual value.  That will result in two REMs. So you can kind of like create many functions this way. You do have to keep in mind that with REM, you still have to have your computed value and then the actual used value is gonna be updated with this calculation. So another example where we go back to that life cycle of custom properties, but just something that I've seen people doing is trying to concatenate custom properties. You can't just add them like a JavaScript template literal string.  Yeah, this is happening to me too with like durations. I'll have like a duration as like a unit and then I'll try to just append. Like seconds. Seconds or milliseconds to it. And then I'm like, it's not working. So yeah, that's why you'll see in style sheets all the time you multiply by one second to convert the unit list thing into time, which is cool, excellent explanation. Our last scenario, so this one is, I wouldn't call this a gotcha, but this is a very seldom known feature of custom properties is when you're using URLs in your custom property. So a relative URL and a custom property resolves based on where the file is located that originated that URL custom property. So this might not ever be an issue if you're working with local files, but once you put the files that have a bunch of URL props on a CDN, you're in for a surprise. So let's say you have a CSS file with some icons in it, you know, SVG icons and the URLs are relative. That CSS file is in your local project folder next to some assets or whatever and all as well. But as soon as you put that file on a CDN or maybe it's been moved or flattened because CDNs like to flatten folder architectures, the paths will break. However, you could also use this to your advantage. So it's not always just gonna surprise you. You could host a file and do this intentionally. So host your relative URL props on a CDN as they will resolve to the CDN directory and you can pull from an adjacent folder intentionally. Like imagine you import a CSS file of icons from a CDN and it uses relative URLs and also hosts the icons. So that way that's very handy. You don't need to adjust any of your URLs to get the icons right in your CSS. That relative URL feature becomes very handy. Check out the show notes for an example of this from Romain Menke from Post-CSS. They have a, they pretty much made a test for it because it's a feature of relative URL custom properties but it also shows you a cool use case. Yeah, that's a really cool idea. I hadn't really used URLs for custom properties in the past but maybe I will because that's like a neat solution. So to wrap up this show, a couple of takeaways for you. Hopefully you learned something a bit more about custom properties and dove a little bit deeper. The first takeaway is that values can be inherited by descendants but those descendants can't pass back values to their ancestors. Yeah, that's a big one. Here's another takeaway. An invalid custom property value is unable to fall back to previously set cascaded value. So an invalid custom property is invalid and without a proper fallback. Yeah, anyway, it surprises people. Which is also why I really like registered custom properties because you can set the fallback so you don't run into that case and you kind of like foolproof your custom property systems which are a big part of design systems. So like you're sort of like type checking them in a way. Also just learned all about URLs and custom properties. So relative URLs are resolved to the directory they are found which can be a remote directory, a neat tip. And then here, you already captured this takeaway but use a fallback value when defining a custom property. That way in case something happens there's always a value there to be found. Yes, yeah. Also using at support something that you can do to not break those fallback values. So that's something in terms of browser support at property is almost stable. It is so close. I'm pretty sure it will be right into the year. It's part of interop. It's in two of the modern browsers and it's like ready to ship in the third. So hopefully by the time that we get out of this year we won't have to worry about using at supports. But if your browser matrix of course is a little bit longer term then just use at supports. I'm ready. I'm ready for it. Yeah, me too. I've wanted that so long but I can see it says it just feels like such a missing, huge feature need. Another thing to note is we as a Chrome team are currently working on custom property debugging. So like tooling to improve custom property workflows right now. So if you have ideas or are running into scenarios where you need more support, give us a shout. We would love to hear from you and hear about the things that you're running into when it comes to custom properties and issues with them and debugging with them. That's all we got for today. So thanks for joining us. Yo, if you have any questions about custom props or whatever, we'd love to answer them on the show. Just tweet us with the hashtag CSS podcast. I'm Yuna, that's at UNA. I'm at Argyle link ARG YLE INK. Check the show notes too. There's a lot of goodies in there. But yeah, ask us a question. We want to hear it. Yeah, good call.  So check them out. And if you like the show, please give us a review on whatever podcast app you're using or share this podcast with a friend because those reviews help other people discover our show. And that means that we get more time to focus on making more for you. Yay, thanks y'all. Looking forward to your questions. Bye, we'll see you next time.


How much have the Palestinians suffered for the injustices committed by others? They inherited the consequences of the sinful actions, the disobedient actions of non-Muslims and other Muslims. But here's the reality, the haqiqa, Inna Allah iza ahabba qawman ibtalahum. When Allah subhanahu wa ta'ala loves the people, He tests them. The disobedience of some people leads to difficult conditions in the world through which Allah subhanahu wa ta'ala will demonstrate His love for other people. Allah subhanahu wa ta'ala is always in charge. A man came to the Prophet sallallahu alayhi sallam and said, O messenger of God, which of the people is tried most severely? Qala al anbiya, the prophets, then those nearest to them, then those nearest to them. 106 years of oppression, 106 years of trials and tribulations. That tells me that the Palestinian people are beloved to Allah subhanahu wa ta'ala. Maybe I'm wrong, but it seems to me that Allah subhanahu wa ta'ala is giving them the prophetic treatment.


Before I get started with this video, I want to thank you for your support. The channel officially reached 5,000 subscribers, 300,000 views after publishing my 50th video all on the same day. I couldn't have done it without you. And I finally started a Patreon page. By becoming a patron, you can voice your opinions on the type of educational videos you want to see. You can have access to my community and so much more. So if you like my content and support what I do on this channel, become a patron today so I can keep making the content that you deserve. The link to my Patreon page is down in the description below. So check it out. Alright, enough of that, enough pandering. Back to the video. Since there's a ton to cover in RNNs, I'm making this a two-part series. In this video, we're going to start with intuition behind RNNs and use that to code a text generator to generate sentences using only NumPy. When you hear recurrent neural networks, you think of time series, you think of the stock market prediction in cryptocurrency, you may be interested in recurrent nets for their applications in natural language processing, like language translation and sentiment analysis. How are RNNs so versatile? How can one type of network be used in so many applications? We're going to take a look at exactly that. And the best part is that understanding them isn't actually too difficult. RNNs are just your typical feed-forward layers, just copied and pasted. So all you need to know is backprop and you're good to go to understand recurrent networks. After this video, you'll understand exactly how RNNs work on the inside. Whether you've never heard of them before or dabbled with them a little bit using some deep learning libraries, you'll get a new perspective of recurrent neural network theory. This is code emporium, so let's get started. Let's first start with the big question. What is deep learning? Now I'm not talking about the standard wiki definition and its association with machine learning, but more big picture from a mathematical perspective. Essentially, it is a way of representing differentiable functions that map one kind of variable to another kind of variable. So for example, vector to floating point number in regression or a vector to a vector in classification problems, where the output vector could be probability of belonging to multiple classes. So what are vectors? In math, it is an n cross one column matrix, but more concretely, it is an abstraction of raw data. While dealing with images, we convert them into a vector of pixel values to pass into a feed-forward net. Vector represents the meaning of the image, but it is in the form that is less understood by humans. While dealing with audio, raw wave information is transformed into a vector of malfrequency substantial coefficients. MFCCs carry the meaning of the audio clip that is better understood by a computer. We can see recurrent neural networks as throwing sequences into the mix. So what are sequences? In English, a sequence could be a sequence of words in a sentence. In stock prediction, a sequence could be a sequence of prices over time. In general, a sequence is a sequence of data that has some defined order to it. Recurrent neural networks can transform sequences to vectors. They can transform vectors into sequences or even sequences to other sequences. Because of such general transformations, RNNs find themselves useful in a host of applications, and we'll talk about these in a bit. But before we look at the basic architecture, let's first derive some intuition behind recurrent nets by introducing the concept of dynamical systems. Discrete dynamical systems answer the question, I know the state of a system now at time t, so what will the state of the system be at time t plus n? This is also the question we want our recurrent net applications, like stock prediction to do. You know the current market and some past info, so what will be the state of the market in the future? Let st be the state of a system at time t. This state could be represented by some vector. Mathematically, we have a function f that determines the system in the next time step. So with such a function f, we can determine the state of a system at any future discrete time step. But in machine learning, we usually have some form of input to the system. And for this input, we want to make a future prediction. Let's consider a dynamical system with an external input. To avoid confusion, I'll replace the state s notation with h to indicate that it is hidden. h of t plus one represents information seen before it. But since h of t plus one is a fixed length vector, and the number of inputs before it can be any number, h of t plus one doesn't remember everything it has seen before. So it is important to determine what to remember and what to forget. For example, if we have a network to predict the next word in a sequence of words, all information from the beginning may not be important. That said, what is retained and what is forgotten can be determined based on a function f. Representing this in neural network language, it can be written as applying transformations and activation. If you don't see how this is, that's okay. Let's start with writing out the equations. This here is a typical recurrent neural network that maps a sequence x to another sequence o. Xt is an input at time t. This could be a word in a sequence. h of t is a hidden unit. This is a vector that represents the current input and the past input seen before. The amount of information retained is determined by the weights w from the previous time step. It also has a nonlinear activation for modeling complex data. Let's consider the TANGE activation. It's important to note that the h's here are all actually the same vector. Its value is just tweaked over different time steps. But each x is different from each other, and together they represent a sequence. o of t is the output at time t. In supervised learning, we have a sequence of labels, y. At every time step, we can compare the prediction that is o of t to the actual label, which is y of t, and hence determine the loss. The total loss is the sum of losses at every time step. The primary idea behind RNNs is that the system's past state influences its next state. We convert the black box form to this nice graphical form, which is basically copy and paste of the same network. And now we can estimate the parameters of the network, that is v, w, and u, the matrices here, with standard forward propagation and back propagation. To be more specific, the technique uses back propagation through time, bptt, as the h's aren't actually different systems, but the same system at different time steps, like I mentioned before. But there's a problem with back propagation through time. At every time step, we need to perform back propagation, so deep layers have significantly larger computation costs. They take longer, and activations need to be stored at every time step. So the amount of storage you need also increases. So a simple solution is to avoid training with back propagation through time. And we can avoid this using an algorithm called teacher forcing. So during training time, instead of feeding the hidden layer of the previous state to the hidden layer of the next state, we feed the output y, the actual label y, from the previous state to the hidden layer of the next state.  From there, there's no backward edge, so back propagation stops. At every time step, we only back prop two edges instead of the entire sequence history. During testing time, at every single time step, the predicted output OFT would be fed to the next layer. So it's pretty slick, right? But there's a problem here. It is trained on perfect data, because we're feeding in the output factual labels y, but it is tested on real world data by feeding in the output predicted labels O. And since factual data may not be a good representative of actual data that's generated in the real world, the predictions could be off. Another architecture is the sequence to vector model. The input x is a sequence with a single output vector. An example is a network that reads all the words of a movie review, and it determines if the review was positive or negative. A typical application of sentiment analysis. Another architecture is the vector to sequence model. We can convert a single vector x into a sequence O of any length. Usually a vector is an internal representation that's understood by computers, not so much by humans. By converting these into sequences, we can make sense of the abstract vector representation. To give an example, x could be some parameters of a generative model that generates sentences in English. The output sequence could be the result of sampling from this generative model at different time steps. And so from the output, we actually get a meaningful sequence or meaningful sentences. Another interesting model is a bi-directional recurrent neural network. Now the recurrent networks that we've seen so far use information in the past to make decisions in the present. But in some cases, it's also possible to make use of information in the future to make decisions in the present. That sounds weird, right? So how can you actually make use of information from the future that hasn't happened yet? Well, you can't, and that's not what I mean here. Say you want to model language translation. You have to translate some information from English to German. Just looking at the last word or words makes it possible to make a word-to-word translation. But this wouldn't make sense. Anyone who's bilingual would know that translating every word isn't how language translation works. There are context cues and rules of grammar that need to be followed. So the output O of T wouldn't simply be the translation of X of T, but some other German word depending on the context. This context is derived from words that appear both before and after X of T in the sequence. In a similar light, another use of bidirectional RNNs would be in text summarization. You need to summarize a paragraph or a document into a few sentences. The RNN already has access to the entire document, so it makes sense to read through a few words into the future to understand the context. However, bidirectional RNNs wouldn't be useful in real-time applications where the future input isn't known, like in the case of self-driving cars, or any type of streaming data. Technically, the text summarization and language translation applications don't use RNNs in this specific architecture. Here, the length of the input sequence needs to be the same as that of the output sequence. This isn't the case, though, for language translation, as a 10-word sentence in English can have a six-word translation in German. So instead, we would use a bidirectional architecture with unequal input and output sequences. This looks like a good checkpoint for theory. Let's now take a look at these recurrent nets in action with some code. We are now going to build a vanilla recurrent neural network that generates sentences using only NumPy. First, we make library imports. Iteratools is used for performing operations on pythonic data structures. NumPy is our math library, typically for matrix operations. NLTK is our toolkit for natural language processing. We use it for word and sentence tokenization, and also to get our data, which I'll explain in a sec. OS is used to access our local file system. Sys allows access to Python interpreter variables to do things like clearing output screens or accessing command-line arguments. First, download NLTK. We'll be using the State Union corpora, which has speech transcripts dating back to the 1940s. We read all of these files and extract all sentences in a list. We add sentence delimiters to every single sentence. It's required to let our RNN know what is the start and end of a sentence. Next, we break down every sentence in terms of words, a sequence of words. This dataset has over 18,000 words. But since that's going to take forever to train, I regulated it to 8,000 of the most frequent words. And for every word that didn't make the cut, I replace it with a token called unknown. Now create our training data. Input is a word, the output is the predicted next word. Pythonically, it's just zipping a list with a version of itself that's one step ahead. Next, let's get into our RNN class. The constructor makes initializations of our matrix parameters, u, v, n, w. The forward method computes and stores the state and output activations of every time step. They are stored for the back prop step. The prediction function will output the word with the highest probability of occurrence. SGD step performs the gradient update through the back propagation through time algorithm. Gradient checking will determine if our hand implemented optimizer is actually doing what it should be doing. It's good to include it for manually coded optimizers. Once we see our optimizer is working as expected, we can begin training our model with stochastic gradient descent, decreasing our learning rate if the loss starts increasing. This was trained over 100 epics, and each time having the network look at 1,000 sentences. This took like 30 minutes on my little MacBook. Now for the fun part, generating sentences. We tell our model to generate sentences of at least 10 words. Each time, we first feed the sentence the start word token, and then let the model take over from there. It performs the forward step and generates the output probabilities at each time step. This is basically a 800 dimensional vector containing values proportional to the probability of sampling that word. We sample the words until we sample an end of sentence token, and boom, we have our generated sentence. Let's now take a look at some glorious examples. I into other billion when you world of by most a n of supply. I with economic taking his peace loving the year child the enduring was switch value for enemies American of also.  It sucks because we need to train it for longer. I save the model parameters after training so you can just reload it and continue to training until you're satisfied. I'll put this code on GitHub and the links in the description, and that'll do it for now. Once again, thank you guys so much for the support. Don't forget, it'd be awesome if you guys be my first patrons to so I can continue dishing out some awesome content links in description. In the next video, we're going to talk about more important architectures. We'll also cover why for longer sequence inputs, we need better architectures gated recurrent networks like LSTMs and GRUs. So stay tuned and stay safe.


Hey, welcome back to our show, we're Xersugur. Hi, you can follow us on Instagram, Twitter, juicy content. Thanks to Patreon, Falls of Richard, gonna subscribe to like button. And today we have a video, this is called something, something, something, something. Today we have a, this is India's most haunted site. Bring it, love it. And it's called the Baga Fort. I think we've seen this in like a top 10 most haunted places video, but this goes in a little more deep detail. Is this the fort? I don't know if it's the one Street's based off of. No, no, that's more than what I was thinking of. Cause I remember seeing a video of the fort that is actually the place where the mass of women that was depicted in Padma Vaat go into the fire. I'm not sure. Let's see. Let's find out, shall we? Because this reaction has no windows and no doors. The fort of Bangar started in the late 16th century, when the construction started. This is the famous, this is the name of the place called the most haunted place. This is the first number in India about ghosts. There are ghosts all over the place. I wanna go. There are a few common folklore that you hear about Bangar. Possibly in the 1570s, there was an initiation of the construction work. And by the time around 1600 AD, the construction would have been completed on a large scale. The king of Amir, Bhan Singh, has been named after him. Bhan Singh or Bhan Singh is the name of the king. Bhan Singh was the king and the queen was the queen. When Bhan Singh was the king, he was the first ruler of Bangar. He was the king of Bangar. So nice fortress. The mountains behind it. This is the name of the place called the most haunted place. This is the first number in India about ghosts. There are ghosts all over the place. So it is said that the whole area comes here at night. Whoever comes here doesn't come back alive. People don't get to meet them. So the people who died in the beginning, people used to say that they have ghosts all over the place. There are a few common folklore that you hear about Bangar. One being the most famous one of Rani Ratnavati. A beautiful queen who used to stay within the fort. Who was like the in-charge of that entire place.  So he tried his level best to kind of get her attention. But things didn't work out. And then there was a curse that the Tantrik actually put on the people there. And he ensured that that place gets into ruins. The tower above is called the worst tower. There used to be a Tantrik living there. His name was Shinga. The Tantrik had done such a magic that one night and one day he was in Tasmus in 24 hours. So at that time there were about 11,500 people living here. So in 24 hours half of the public and the king came out and ran away from here. This is called the old Jaipur. Because the people here went back to Amir. They made Jaipur from Amir. So the new Jaipur was the old Jaipur. Interesting. We've been to Bangal multiple times. Our team was the first one to actually visit Bangal back in 2012 itself. That was the first time a paranormal team had visited that place. It had stayed for the night there and it had investigated thoroughly. The preliminary investigation that we do, it's all based on the readings that we get. We didn't find any unusual fluctuations. And there was not much activity as such to be very honest. Which I at least documented or experienced. There are 3 crores. So you have to go beyond its channel when you go. There are shops with which you can do all the daily needs. There are the shops of the dwellers which are known as Juhari bazaar. There are some such structures in which if they had the will then it is also called the mansion of a dhoti. A dhoti is also called the mansion of a dhoti. And when Raja was worshipping there, it is obvious that there would be a lot of rumours. And the ministers of Raja would also worship there. The horses used to be used during the war. Or the elephants used to be used. So to keep these animals there and to raise them, they would also be worshipped there. For Raja's worship or for his queens, he would also be worshipped there. From the protection point of view, there is a watchtower which is used to keep an eye on any dhoti. So there is also a watchtower at the height of the mountain. And it would keep an eye on it. There is no movement of the horses. So that it could check the movement of its own people. The enemy of the horses, who were there, would have killed them in the jail. Sir, this area is not full of light. Because in the middle of the forest, there is no light. So the darkness turns into a spark. And there are animals in the park. Because of these animals, the night is dangerous. You have all kinds of animals making different sounds.  Mostly they take shelters on the trees that are around there. So there are branches that shake, there are leaves that rustle. And it definitely creates a very spooky kind of a voice. Most probably there is a psychological impact that has been created maybe by the people who stay there. Or maybe in general because of all these tales or all these stories that are revolving around the place. Archaeologically, if you look at the side that is being abandoned, then the essential items that are needed for life will never be abandoned. Otherwise, there will be a major attack there because of which people will have to leave. So in general, maybe there will be some sort of effect because of which the city had to get rid of the people. And the biggest possibility is that the natural source of water was created by some kind of doubt because of which it dried up. And for a long time now, because one of the sources was burnt there. If it was not there, obviously they had to be forced to migrate. It's very beautiful. I would love to go. Notes down, apparently not haunted. Yeah, I was going to say, how is this considered the most haunted place in India when you have paranormal experts come in and say there's no paranormal activity? I don't even know how that paranormal... Oh, I created this thing that can detect. How do you... Well, it's to detect energy. They detect wavelengths that are generated. How do they know the ghosts emit that? Yeah, that's my thing. Dad, I don't know. Dad, I don't know. I mean, I would love to... One, I don't know whether they travel there alone. Tiger reserve, Panthers. Yeah, that's probably one of the reasons people don't come out. It's the Panthers. Hungry Panthers and Tigers. They are meat eaters. Yes. Two-in-two makes four. And you're... Delicious. Delicious meat. But it's a beautiful fort.  Probably has a gorgeous view going down on it. No, like... One of the most haunted places, if you look at documentaries about the paranormal and things of that nature, is what is referred to... I don't know if you remember the actual name of the forest, but it's referred to as the Suicide Forest in Japan. You know about that? Logan Paul does. That went way over... I don't know what that means. Oh, he did a vlog there, and he found a body and left it in the video. It's somebody who committed suicide. Oh, that was in the forest? That was in the forest. I didn't realize that that was where he had done that. And obviously that is probably wrong of him. Yeah, especially from that place. And I don't think he blurred it out either. One of the things about that forest is it is a very lush forest, not really near anything, so it's a lot of acreage or hectares of land. And there's pretty much no life in there at all. There are no birds making sounds. There's no critters rolling on the ground. It is a very odd occurrence at this place that has a hugely disproportionate amount of suicides take place in it versus anywhere else in Japan. Also accompanying that is this weird, lifeless space for everyone who I've ever seen a documentary on it goes in there and says, there is something weird about this forest that there's no birds, there's no squirrels, rabbits. There's no life that you can see anywhere in this forest. Interesting. Intriguing. I'm always the skeptic. So I'm just like, no, this is a cool place. You mean to tell me that you have never, not once, not once, made some toast and seen an apparition on the toast and then told people in the neighborhood and they came and they saw it and they sent up an altar in the corner to your toast? No. I'm deeply disappointed in you, Corbin. I know, I know. Anyways, let us know if you've ever been here and what are their haunted places we can check out and I hope India starts making a little more scary style of films. With all of that history. It'd be a lot of fun. So many old places. There's so many things that you could tell and do that would be terrifying. Anyways, let us know down below.