Finally, start recording. Thank you, Google. Right, let's just pray. Father, we thank You. We acknowledge Your presence in our midst. Lord, You said where two or three are gathered in Your name.  We believe that You are here, Jesus. We honor You. We honor who You are. We love You. We love Your presence. Come in. Do what You do best, even as we learn from Your Word. Holy Spirit, open our eyes to the wonderful things of Your Word. I pray in Jesus' name. Amen. Amen. I hope my audio is clear enough to you guys. Yeah, it's not too basic. Okay. Okay. So, we've been understanding worship in chapter 5. We started off with understanding the first point of what worship is. Worship is recognizing who God is, acknowledging and identifying who God is. The second point is worship is reverence for God. Yes. And the third point is worship is communion with God. Yeah, worship is communion with God. And the fourth point we discussed in the last class is that worship is our response to an encounter with God. So, we took a slight detour to understand what encounter is, right? And so, I hope that was helpful. Okay. Worship is not an encounter with God. Worship is our response to an encounter with God, right? Isaiah in Isaiah 6 has an encounter with God. He sees, you know, in the Yerkin Uzziah died. That's what it says in Isaiah 6. I saw the Lord lifted high and exalted and the train of His robe was filling the temple. And then he sees the seraphim crying out, Holy, Holy, Holy to one another. And then Isaiah responds. He responds by saying what? What does Isaiah respond? How many of you have read Isaiah 6? Woe unto me, for I am a man of unclean lips. Okay. Isaiah chapter 6 is a very important chapter. Okay. So, Isaiah responds by saying, after that encounter, woe unto me, for I am a man of unclean lips. Then the seraphim takes a coal from the altar, touches his lips and then says, your sins have been atoned for. Okay. So, you see how worship is a response to an encounter with God. Okay. And time after time, story after story in the Bible, we see such responses. And in your notes, if you look at it in Revelation chapter 1, Revelation chapter 1 was 12 to 17. It has a very similar response and I'll read it for us. Revelation chapter 1 was 12 to 17. It says, then I turned to see the voice that spoke with me. And having turned, I saw seven golden lampstands. Okay. What is happening is an encounter right now. Okay. So, John is having an encounter. He's in the island of Atmos. Okay. This is where John is. Right. It's a prison island where all the prisoners were kept. And in the prison island, he's having this encounter. He's seeing, he saw seven gold lampstands and in the midst of the seven lampstands, one like the son of man clothed with the garment down to the feet and girded about the chest with a golden band.  His feet were like fine brass as if refined in a furnace and his voice as the sound of many waters.  And when I saw him encounter, when I saw him, I fell at his feet as dead response. And he laid his right hand on me saying to me, do not be afraid. I am the first and I am the last. Okay. So, you see John's response to that encounter was very simple. What was his response? He fell down as dead. Yeah. Let's read one more scripture and we'll talk about it. Revelation chapter 4, 9 to 11, it's in the notes again, Revelation 4, 9 to 11. It says, when the living creatures give glory and honor and thanks to him who sits on the throne, who lives forever and ever, the 24 elders fall down before him who sits on the throne and worship him. Okay. Listen to that one more time. Verse 9. Whenever the living creatures give glory and honor and thanks to him who sits on the throne, who lives forever and ever, as a response to that encounter, the 24 elders fall down before him who sits on the throne and worship him who lives forever and ever and cast their crowns before the throne saying, you are worthy, oh Lord, to receive glory and honor our for you created all things and by your will they exist and were created. Okay. And so worship requires a revelation. Okay. You can write it down if you want to and not because it's a cool line, but it's important. Okay. Worship requires a revelation. Okay. Someone, where's my Bible? Let's go to Psalm 47 for a second. Psalm 47 verse 7. Very simple. And with your other finger, other hand, go to Psalm 145. Okay. We need two different scriptures. Psalm 145. Don't lose Psalm 47. Okay. So Psalm 47 verse 7. It says, for God is the king of all the earth. Sing praises with understanding, isn't it? Okay. So you can underline that. What does understanding is? Understanding comes with if you've understood something. Right.  Are you with me? Right. And so sing praises, that means worship with understanding. So you can only worship to the degree of the revelation that you have of God. Okay. So you can only worship according to the degree of revelation that you have of God. Okay. So as we can go much deeper in that point, but why some of them remain as Sunday Christians? You know, we'll talk about the Tabernacle of Moses a little later, but then Tabernacle of Moses has had three different parts, isn't it? The outer courts, inner courts and the holy of holies. You know that, right? The outer courts, inner courts and the holy of holies. Why are most of the Christians happy in the outer courts? When there is a clear invitation to go all the way into the holy of holies. I'm happy in the outer courts. Why should I go in? It's because they have not had the revelation or they have not made an effort to understand. Right? They have not pursued the presence of God. Let's Psalm 147 verse 7. Let's praise him with understanding. Another scripture. Let's go to Psalm 145. Psalm 145 verse 2 and 3. If you're there, say amen. Okay. If you don't know where Psalm 145 is, come forward. We'll have altar call. I'll pray for you. Okay. Psalm 145. Yes. I attend more short term Bible college. I learn Hindi. Okay. Psalm 145 verse 2 and 3. It says, every day I will bless you and I will praise your name forever and ever. Great is the Lord and greatly to be praised and His greatness is unsearchable. Okay. So look at that. Every day I will bless you and I will praise your name forever and ever. There's another translation that says, every day with its new reason. Okay. Listen to me. One version says, every day with its new reasons. Reason is what? It talks about fresh revelation. Right? Every day with new reasons. In other words, every day with fresh revelation, I will bless you. I will praise your name forever and ever. And then it goes on to say in verse 3, Great is the Lord and greatly to be praised and His greatness is unsearchable. His greatness is unsearchable. That means you cannot come to a point and say, I know everything about God. Okay. The Psalm is very important guys. Those words are very important. His greatness is unsearchable. That means you cannot exhaust. You can keep searching and searching and searching and you found something new one day and then the next day you will find something new. And then the next day you will find something new. Okay. There's a person called, used to be a person called Bobby Conner. He said, we've become very familiar with the God we hardly know. We become all too familiar with the God we hardly know. So these verses say that we can keep searching and searching for His greatness and every day you will keep having fresh revelation and it is out of that revelation that is an encounter that you worship as a response. Okay. So the fourth point of what worship is, worship is a response to an encounter with God. Right. Are all of you alive? Alive, no? How are you guys doing online? All good. Let's move on to the other section that talks about worship defies definition. Go to John chapter 4 verse 23 and 24. A very familiar passage. We all know that. Okay. So it starts off by saying that the hour is coming and now is when the true worshippers will worship the Father in spirit and in truth. You know what? Let me just read some more scriptures before that. Sorry. Okay. Let's read from verse 21. Okay. I'd read it for us. John chapter 4 verse 21. It says, Jesus said to her, woman, believe me, the hour is coming when you will neither on this mountain nor in Jerusalem worship the Father. Verse 22, you worship what you do not know. We know what we worship for salvation is off the Jews. But the hour is coming and now is when the true worshipper will worship the Father in spirit and truth for the Father is seeking such to worship him. God is spirit and those who worship him must worship in spirit and in truth. Okay. It's very interesting that in verse 22, Jesus begins by saying you worship what you do not know. That means you do not have a revelation. Because you don't have a revelation, you don't have understanding. It's in connection with the previous points. Are you following? He's telling the woman, you worship what you do not know. That means you can be worshiping and you will not know what you're worshiping. Have no understanding, no revelation of what's happening. And that's why verse 23 says, the Father is seeking, not just worshippers, he's seeking true worshippers. So if there are true worshippers, that means there are also. That means there are also. If there are true worshippers, that means there are revelations. Thank you. And so he goes on to say that worship him in spirit and in truth. So what is worshipping him in spirit mean? So we worship God in the power of the Holy Spirit that lives in us. It's as simple as that. So true worshippers, worship from their heart, from their innermost being, from the core of their being. How many of you know this verse from Ephesians chapter 5 verse 18? Ephesians 5 verse 18, do not be drunk with wine, but be filled with the Holy Spirit. Have you heard that before? Ephesians chapter 5 verse 18, in the passage of scriptures it says, do not be drunk with wine. This is a commandment by the way. It's not a suggestion. It's like, yeah. Okay. So this is a commandment. And as Christians, and I've seen from at least my life's experience, we are very good at following the first part of that commandment. Do not be drunk with wine. No, no, no, wine. I don't even smell it. I haven't no wine. Do not be drunk with wine. And so if I were to ask you that do you follow that part of the commandment, hopefully everybody would say, yes, pastor, I follow that first part of the commandment. Yeah. Now what about the second part of the commandment?  We can't be empty for the sake of being empty. Isn't it?  Understood? And so it is the Holy Spirit who enables us to worship Him in the Spirit. He empowers our Spirit to worship Him. And so that's what Jesus is saying that a true worshipper will worship Him in spirit. And the second part of it is in truth. We worship Him in spirit and in truth. Okay, very quickly. What is the difference between a truth and a fact? What is the difference between a truth and a fact? Truth is eternal, pastor. Truth is? Eternal. Truth is eternal? Yes. Okay, less sophisticated definition. It's right, what you said is right, but a little simpler one. Unchangeable. Unchangeable? Okay, thank you. Sorry, Nelson. Fact is truth, but can be changed. Fact is truth, but can be changed. Fact is truth, and if it can be changed, like weather reports, it's not truth, no. Fact can be changed, but truth cannot be changed. Yeah, okay, so fact can be changed, truth cannot be changed. Did you get that? Fact can be changed, but truth cannot be changed. Okay, let's just get some more understanding on that. You said weather report. The fact is it says today evening it can rain, correct? Weather report says this evening, 5 o'clock, there will be heavy showers. That's the fact. But it can change. Something else can come. Okay, you're following, right? So why is this important for us to understand is the difference between a fact and a truth? The fact is that Lazarus had died. That's the fact, but Jesus can raise him from the dead. Okay, the fact is that women had the issue of blood for 12 years. That is the fact. But the truth is Jesus can heal her. Jesus healed her. That is the truth, isn't it? John chapter 17 verse 17 says your word is truth. Okay? I hope it's, yeah. John 17, 17 says sanctify them by your truth and your word is truth. Okay? And then finally we know what Jesus said about himself. I am the way, the truth and the life. Okay? So he's the unchanging one as we know, right? He's the same yesterday, today and for ever. In Joshua chapter 1 verse 5 he says as I was with Moses, I will be with you to Joshua, right? The fact is Moses has died. The leader of Israel who led them for 40 years is dead. That is the fact. But the truth is God is eternal. And that's why he says as I was with Moses, I will be with you, right? And so that is the truth. His word never changes. And so let's look at one more scripture if we can, please. Let's go to Psalm 119. Yeah, thank you Lucy. Truth is constant. Yes. Psalm 119. Which verse do you want to go to? Out of the 176. Okay, let's go to Psalm, sorry, verse 169. 169. Psalm 119. You got it? You got it? Okay? Verse 169 to 172. It says, may my cry from before you, oh Lord, give me understanding. Okay, listen to those words. Give me understanding. In other words, give me revelation. Help me understand according to your word. May my supplication come before you. Deliver me according to your promise. That is again referring to the word of God. May my lips overflow with praise for because you teach me your decrees.  It's the beautiful passage of scripture. It talks about Psalm 119, where his word is important for every aspect of life, especially when it comes to the context of worship. Okay? Any questions you guys have so far? Okay, let's quickly go to first Samuel chapter 15. I hope you're okay with that. First Samuel chapter 15 verse 24 to 31. It says then, Saul said to Samuel, I have sinned, for I have transgressed the commandment of the Lord and your words because I feared the people and obeyed their voice. Now therefore, please pardon my sin and return with me that I may worship the Lord. But Samuel said to Saul, I will not return with you for you have rejected the word of the Lord. And the Lord has rejected you from being king over Israel. And as Samuel turned around to go away, Saul seized the edge of his robe and it tore.  And also the strength of Israel will not lie nor relent for he is not a man that he should relent. Verse 30, then he said, I have sinned, yet honor me now, please, before the elders of my people and before Israel and return with me that I may worship the Lord your God. Verse 31, so Samuel turned back after Saul and Saul worshiped the Lord. Saul worshiped the Lord. One more scripture, let's go to Isaiah. Isaiah chapter 29. Isaiah chapter 29 verse 13. It says, therefore the Lord said, inasmuch as these people draw near with their mouths and honor me with their lips but have removed their hearts far from me and their fear toward me is taught by the commandment of men. Inasmuch as these people draw near with their mouths and honor me with their lips, but have removed their hearts far away from me. Okay, so we understood that if there are true worshipers, that means there are false worshipers. False worshipers is what Isaiah 29 and 13 is talking about. They just give me a lip service. They honor God with their lips, with their tongue, but they don't really, their heart is far away from the Lord, from his commandments. And the scripture says, be aware. Be aware of hypocritical worship. Okay, we'll study more about this in the next class about false worship. But yeah, I just want to emphasize the importance of true worship because when you worship the Father in spirit and in truth with the revelation and the understanding of who he is, if you worship without the revelation you are just wasting your energy because God is not bothered by it by what you can say and do. If you don't know who you are worshiping, what is the point? Are you with me? The very first point in understanding what worship is is recognizing who God is, isn't it? There has to be a revelation of who he is so you can identify and acknowledge for your respond with worship. And so if you don't have that revelation what are you doing? What are we doing? Right? It's just noise. Thank you, Lord, thank you, Lord, thank you, thank you, thank you, thank you, thank you, thank you.  Hallelujah, hallelujah, hallelujah. Right? Just making noise without any real impact or revelation of what worship is. So what happens when we worship God in spirit and in truth? From your notes again. When you worship God in spirit and in truth worship transforms us. It changes us. I just hear a few more points and I'm really close today, okay? Worship transforms or changes us. Let's go to Psalm 115. Psalm 115, 115. Okay? I hope everyone's there. Psalm 115. Let's read from verse 4 to 8. Psalm 115 verse 4 to 8. It says, So is everyone who trusts in them. Okay? That last verse is very important. Verse 8. Those who make them are like them. In other words, you become like the one you worship. Okay?  What God is saying in verse 8 is that, okay, people who make these idols just give eyes and nose and you know what not. It's dead. It's lifeless. It has no life. It can look like it has eyes but there's no sight. It can look like this idol has hands but it cannot lift or hold anything. It can look like it has legs and feet but it cannot walk. It looks like it can have a nose but it cannot smell. It looks like it has a mouth but it cannot speak. That means it's dead.  That means even you will become lifeless. And so true worship changes and transforms us. So if you know the one you are worshiping, we have this revelation that our God is alive. Isn't it? He is ever present, only present. Isn't it? He is the Alpha and the Omega. And so when we worship Him with the revelation of who He is, we are conformed into His image. So true worship, worship in spirit and in truth has to change you. You cannot say that you have worshiped God in spirit and in truth if you are not changed. I'll say that again. You cannot say that you have worshiped God in spirit and in truth if it has not changed or transformed you. The question next arises if you are not changed, okay, then who are you worshiping? Or what are you worshiping? Okay, so the first point is very simple. Worship transforms and changes us. And then the second point, in worship we experience God's presence. In worship we experience God's presence. James chapter 4 verse 8, it says, draw near to God and He will draw near to you. Cleanse your hands, you sinners, and purify your hearts. You double-minded. I'm just reading the scriptures from your notes, by the way. Deuteronomy 4, 29, it says, but if from there you seek the Lord your God, you will find Him if you seek Him with all your heart and with all your soul. So it says, when we draw near to Him He draws near to us. That means His presence is experienced. Okay, so in true worship we experience the presence of God. In the next chapter we learn more about His presence but I just want to highlight that for now. Okay, time and time again in the scriptures, God has said I will be with you. Even though I walk through the valley of the shadow of death, I will fear no evil. Why? Why? Because you are with me. That means His presence is with us. That He is with me. And because He is with me I will fear no evil. And that is again a result of worship. In worship we experience God's presence. And finally, in worship, worship empowers us to rule and to reign. Worship empowers us to rule and to reign. Okay, I just one scripture I'd like to read. 1 Peter chapter 2 verse 9.  Okay, let's stop. The word called royal priesthood must be underlined in your notes, right? Already, if it is not. Is it? So, what was the responsibility of a priest? What does the priest do? That's a very simple answer. Don't just say worship. What does the priest do? Minister to God. Okay, how does he minister to God? By worship, by sacrifice. He offers up sacrifices? Yeah, okay. He intercedes? Alright. Okay, how many of you have seen a temple? Okay, we've all seen a pujari. Yes or no? They call him also a priest, no? Yeah, so what does he do? Okay, so I've seen some of my Hindu friends. What they do is, yeah, thank you. So, you go with a bowl? Yeah, flowers, fruits, whatever.  The priest takes the bowl, right? And then he goes to the altar. He does something. He comes back at the prasadam. Right? And you take it back. Okay, so that's the priestly duties. Okay, Biblical, let's come back now. Okay, so he's offering sacrifices. He's interceding, like Akhil said. Then one day a year on the day of the atonement, he takes the blood of the sacrifice and puts it on the mercy seat. All of that. Yes or no? So those are all the duties of a priest. Now, what do you understand by the word called royalty? What is royalty? Whom do you say is royal? Oh, he's from a royal family. Who's royal? King and princess. Yeah, kings, prince and princess. Kings are royal? Yes or no? Okay, Queen Elizabeth. The late Queen Elizabeth is royalty, isn't it? She's the queen. The king is royalty. I'm from a royal lineage. Right? My ancestors are from, say, royalty. Now, does royalty and priesthood go hand in hand? How many of you have seen kings go as level? Come, let me do offer sacrifices. Let me intercede for you. Let me take the blood and put them. Have you seen any kings or queens do that? But yet, here in this verse, we see that we are called, told in generation, a royal priesthood. A royal priesthood. God is saying something. We need to think about it. More the anointing, the more we need to serve. John chapter 13, a very famous chapter where Jesus washes the feet of his disciples. Jesus, Jesus Christ. Christ means the anointed one. Right? What does he do? He is the ultimate. He is the anointed one. There can be no one better than him in terms of anointing. He stooped down, took a bucket of water, clothed a towel, and washed the feet of his disciples. He is the king of all kings. He is the Lord of all lords. He is proper royalty. Yet, he was performing the duties of a priest. Hebrews talks about how Jesus is our great high priest. He is our intercessor, who is interceding right now with us for us in the heavens. You see, Jesus is our offering and the offerer. He is our offering and the offerer. He is our sacrifice and the high priest. Worship empowers us to rule and reign. It empowers us to be royal priesthood. I hope you got the significance. It's quite serious. I'll just stop there. I want to encourage you to go through those scriptures, those notes. One thing is very important in a day and age where worship is spoken of more than prayer. In the last 20 years, the topic of praise and worship has become more famous than the topic of prayer. That's a sad reality. Yes, understanding praise and worship is very important. That's why we have this course. But understanding true praise and true worship is more important. When you have the time, go back and meditate because you guard your heart from false worship. If Father is seeking true worshipers, that means there are false worshipers and there are ways you can worship Him in the false way. Be aware of all of that and meditate on the Word of God because His Word teaches us how to worship Him in truth. All right? We'll pause here. Thank you for joining. I'll see you all on Thursday again. God bless you. I hope you had a good session. See you, guys.


All right folks welcome on back here this Tuesday afternoon October 27th shortly after 2 30 p.m. Eastern time welcome on back here for our Afternoon meeting perfect great to see the whole team with us here live in the cyber group trading room Norman Greg Michael Lori great to see you all Wayne Donnie Jose Jim Ron you guys are coming in too fast I'd love to see that though loud and clear from all and welcome on back as always for anybody tuning in on social Media Facebook live and YouTube so now further ado we ended up seeing at least a nice push-up early within the market We ended up seeing a few stocks move up pretty nicely at first But now as you can see the Dow beginning to dump back down heading into the afternoon Making a similar type of move compared to what we had had just about 24 hours go from from here So you know going into today guys at least this afternoon Neo will put it up on the screen Ended up making a nice push it I mean as soon as the market opened up took a little while for the market to make that little bounce But whereas Neo ended up breaking out shortly after the market opened up It just kept going so really I'll kind of just zip through this trade pretty quickly As soon as the market opened up and I say that really because for any one of us inside the trading room We didn't really go over this trade inside our trader stock workshop. We ended up going over a trade from yesterday So you know really quickly just to analyze this position the Neo stack You know, it's one that we follow pretty much on a day-to-day basis But once the market opened up the opening bell print was right off of $26.25 So it has some coiling up to do within the first five minutes But once it ended up breaking above that and also I think at the time there was an order on the ask It was right before the pop it was right off 26 30 so 26 25 26 30 once it finally finally cleared over those price levels it took off You see the volume spike that came in off the pot from 26 30 moved up pretty nicely from that point But man, this just shot up like a rocket ended up blasting right through 27 I don't think it's ever even pulled back to 27 once today It broke over 27. I was looking for a short on this actually believe it or not I didn't I did not go short at the time but blasted right over 27 I was looking for a quick false breakout but man This just kept ripping up and to the point where it never really even pulled back down to 27 as a major support So heading into this afternoon for Tuesday. I mean it's on the way up to 28 So, you know, we're gonna put this right on the top of our list heading into the afternoon Should be needless to be said but of course with this, you know, trade on our screen to begin We'll just put this on the watch list here. All right, cool So guys with that in mind for all of us inside the trading room at least we do a Fausto's phase 3 stock course coming up This afternoon right at 3 o'clock It's what he likes to call the advanced class getting the manum Getting to see the man himself trade the market close feeding right off the Afternoon watch list that we have here or that we will have here. So Let's go right from top to bottom the SRRK here just to begin I didn't see the news on this. I didn't care to look. I was just gonna copy and paste going into this meeting. So SRRK scholar rock announces proof of concept data phase 2 trial interim analysis Muscular atrophy. All right So we ended up seeing a massive pop on this very similar to neo I mean pretty much as soon as the market opened up. I mean took me by surprise I wasn't as focused on this trade at least leading into 930 myself, but You're gonna copy and paste the news for anybody tuning in on social media now There you go. So, you know this trade and more or less we ended up seeing SRRK Just grind on up throughout the day beautiful trend off the lows And whereas it was beginning to make around the top peaking around at around 25 or so And we saw this break higher and just kept going So heading into the afternoon the early parts of it at least here We were looking for this to actually squeeze up and over 31 ended up pulling right back down below it I was playing on this more as a short and I got in a little late I guess in relation to the pop off the high but I was looking for a short under 30 It took so freaking long to get this drop off So I'll tell you I took a six cent loss believe it or not this stock is easy to borrow on the short side I reversed my position right before this pop I was able to eke out like 80 or 84 cents But man, this just dropped off right away after I missed out on the short I was a little nervous about this jumping up and around here at the time Now when I say going short doesn't mean that I was looking to short this all throughout the afternoon I mean this was really strong here at the time took a while for this to begin to break As I'd said, I didn't take this short. Unfortunately. I was a little a little scared about it So I ended up moving on to another trade. I come back and of course makes the big drop off without me But even from that point has kind of based off at around 28 pushing back up here right now over 29 30 is the bigger level to watch. I was expecting to see, you know, this is to hold a lot better Underneath 30 at the time.  Yeah, I mean, it's extremely volatile Extremely active trading about 41 and a half million shares at this point in the day But yeah, SRRK will just put on the top of our list alongside NIO Definitely more of a level 5 stock looking at the spread or lack there of or not even to say lack there lack lack of Liquidity really on the book, you know a lot smaller orders on the bid and the ask on the right-hand side of my screen Spread out orders so the spread is gonna fluctuate a couple of pennies here or there But then right here you could see opening up a lot more Try and focus on stocks that have at least more filled in order books. This WEI would be that Hopefully this ends up making a new run heading into the afternoon We follow this more so after traders talk our weekly workshop So for all of us inside the trading room that should be at least posted on your student dashboard later on this evening But you know, nonetheless, WEI kind of in the middle of traders talk right around 1130 Eastern broke higher And thankfully we're able to catch at least one more leg up heading into the early afternoon as it pushed up Towards three had a tough time clearing higher from three as you could see so pulled back and you know It's still very active heading into the afternoon, right? We followed this stock. I don't think it was was it a week ago even Yeah, it was I was gonna say a couple weeks back, but pretty much just this time last week on the 20th, right? Exactly seven days ago. I don't know if it's Tuesdays in this stock or what but man We ended up seeing this make a huge pop just last Tuesday from 85 cents all the way up to 550 Now what happened after dump back down? So, you know, just be careful. It's not breaking higher I wouldn't expect this to just flatten out in a 5 or 10 cent range So if it's not breaking higher, I would only expect further further to be really just one other direction for this to move to Naked and AKD nice pop. It's a cheapy. Let's see if there's just anything over a buck here Otherwise the GOED popped at the open but Dumped off right after All right, well that will take us right to the middle of this list. We'll kind of just skim through here pretty fast I know that Fausto is in the classroom right now getting ready for the phase three course So I don't want to go too long right before we go into class Harley Davidson off earnings nice pop I mean, I feel like these earnings plays have laid have been crazy with snapchat with Harley Davidson recently here today I'll tell you even one more. I think I got a Double check this so I could be wrong But I could have sworn AMD was going to be reporting earnings after the bell today I know the news came out with them buying XLNX early this morning So I don't know if they ended up advance Releasing those numbers, but I had them on my earnings calendar today too for after the bell So would be pretty crazy if that happens and we'll see an even sharper move from AMD going into tomorrow But more or less getting back to the Harley Davidson trade there I'm just referring to the new wave of earnings coming out guys Just keep a good eye and what's ahead for this week for all of us inside the trading room I'll post what's ahead going into this afternoon and going into tomorrow morning All right, but yeah for right now Harley Davidson, obviously it's stopped on its way up pulling back a bit further here into the afternoon It is shortable. I will kind of see if there's anything else looking a bit better on the way up first But I guess still could be in play Okay, or a CASI was holding pretty nicely here. I just volume died off. That's pretty much it If there's anything that you folks see that looks good, let me know type it in the chat boards PLTR I was gonna jump this this is a familiar name. We followed this stack off its IPO back from late September. It was The very end of September. Yeah But hey, I mean for as much as it ended up dumping off here. It took my eyes off it I mean to the point where I took it off my head today ended up running up Missed the move at least going into the morning popped up into the afternoon We called it out from here, but I haven't been following up on it as much up until right now at least so You know, hey, it's running right to where we would want it to see it run at this point. So PLTR looking great Definitely more of a level like one to two stock a very liquid order book consistently tight spread So if we're kind of comparing apples and oranges here With SRRK and PLTR for a newly enrolled student for you know, a trial member that's looking to follow Just the volume a bit better You're gonna have an easier time reacting to said volume on a stock like PLTR on a stock like I mean, neo is pretty volatile, but that at least has a more liquid order book But yeah, this one's looking fantastic here. All right. So with that, let's hop over to the loser's list This one's looking really good. I'm sure Faust will have some fun with you guys on this trade heading into the afternoon Uh cat B. How about this breaking all-time lows if not mistaken? It's like pretty much right at the all-time lows. I'm gonna put this on our watch list folks It's a little close to the ground floor as I would say zero It is shortable surprisingly enough for those of us with trade station easy to borrow 160 seems to be support here after that 150 But again, we can play this both ways I'm expecting more of a drop here at this point with it down near the lows heading into the afternoon But if we happen to see it make a false break down, perhaps the shorts will cover and we'll see a sharper move back up I mean personally this morning. That's what I was expecting But as soon as the market opened up it ended up just dropping I just kept dropping and dropping and dropping never really set itself up for a great buying opportunity afterwards So I don't know if Fausto is going to focus on this one exactly with you guys here heading into phase three class It might be more on the PLTR, but this one still catches my eye at least for the afternoon This one's also shortable making a steadier drop a little bit further away from The ground floor as I'd said before right This one's pretty pretty interesting also kala kala Looks like an order on the bid off six dollars 25 cents 12 000 shares this one also is shortable Bvxv this stock was down like 85 percent a couple days ago Still dropping off. I mean I've had this on my side list I looked at it early this morning just didn't really offer me anything so I had to move on but I still keep this in mind. I mean perhaps hopefully you know at some point I mean it doesn't really it's not really great swing trading advice, right? I mean, but I'll keep it on you know Piece of paper here. I'll check in on it every morning If I see a buying opportunity or more activity in pre-market one given morning Then hey, I'll focus on it from there got to figure at some point. We'll see a squeeze on a trade like this There's jinko solar dropping off I mean we were more focused on this trade as a swing But I mean even this dropping off steadily into the afternoon the spread will be a bit fluctuating on this I mean much like you saw on the uh SRRK stock, but I mean for right now given the activity. I mean we'll put this on our main list Check I think also dropped off earlier today from earnings, but uh, I'm not doing a whole lot here All right folks if there's anything else let me know type it in the uh cybergroup trading room screen here Or at least on the uh social media feeds facebook live youtube Oh speaking of stocks that dropped off quite a bit. I mean the akba stock We're talking about just before with a bvxv. Look at this gap on the daily chart So it took a long while to get the gears going even for this But we were able to follow this across the last few weeks or at least a couple weeks ago rather michael says and and uh Or at least he says he's showing amd after the bell today That's right, but I ended up seeing the the report come out this morning. Mike though So it confused the hell out of me. So we'll figure it out at least after this meeting fn ko worth watching from jerry Big volume spike or at least in relation to what it's been trading today Yes, but pretty skimpy on volume total across the day a little less than uh What it normally does on an average there even so not as interested in this one just yet jerry I mean good call based on the pop But little light on the volume for right now Then rjf on youtube saying w e i big resistance at 268 Yeah, 49 000 share order on the ask So I mean hey from the last time that we touched base with this stock Which was pretty much right once we started the meeting It's been inching up a little bit and at least now we have a level to identify As as resistance 268 good call. So hey w e i'll slip on the uh list here at the end All right, cool folks. I think that just about does it So, you know for all of us tuning in on social media as always Make sure that you guys like like subscribe and notify right on our youtube channel youtube.com slash cyber trading you For all of us inside the trading room. How about this little teaser? I have something in the works across the next couple of weeks. So I'm sure I will announce it just in this afternoon meet afternoon meetings So for all of us on social media if you'd like to take part yourself You'll have to join us inside the trading room for it Be exclusive to all of us inside the cyber group room, but I have a couple of things in mind I think a fun nice little competition ahead. So I look forward to announcing it soon I'll keep you guys well informed for all of us inside the trading room at least We're going to post and tweet the picks we'll post and tweet the link for class coming up shortly after all right So, um, I look forward to seeing you guys in class. Take care


A film in three minutes ran. If you were going to compose a list of, say, the top five film directors of all time, then you would need to have your head examined if one Akira Kurosawa wasn't included in such a pantheon. Widely accepted as the grand master of Asian cinema, Kurosawa's uva would be the envy of any director's career, and it is impossible to even begin to describe the sheer scale of influence his legacy has had on film as an art form for the last 70 years. To try and deliver a three-minute monologue wouldn't come close to doing justice to the level of craftsmanship and artistic power his many epics contain, but for me, out of all of his sword-buckling samurai classics we've been blessed with, my all-time favourite is his final masterpiece, 1985's Ran. Ran takes inspiration from both Shakespeare's King Lear as well as a 16th century fable about a Japanese feudal chief, with its story revolving around the ageing warlord of the Ishimonji clan, who decides to divide up his vast kingdom equally to his three sons. In a poignant scene that addresses one of the film's tragic themes, Hidetora asks his three sons to each break a single arrow, which they do with ease, but when ordered to break three arrows together, each son fails, demonstrating that their mutual cooperation and most importantly their unity acts as the source of the clan's strength. However, the eldest son Taro and his scheming wife Lady Kaide begin to hatch a plan to seize the entire kingdom for themselves, and what follows could only be described as utterly Shakespearean. The film's title roughly translates to chaos or turmoil, and the many sequences of castle sieges and open ground battles live up to the use of this word, but it's the internal chaos of Hidetora's journey that is the centrepiece of the narrative, showing us a once formidable warrior gradually descend into madness and despair after realising his own children have betrayed him for power. The political intrigue that Lady Kaide spins between the eldest son Taro and his younger brother is a perfect homage to the infamous Lady Macbeth, replacing the reinsodden castles of Scotland for the grandiose minimalism of feudal Japan. The before mentioned castle sieges, particularly the film's most iconic set piece, are awe-inspiring to witness. With composer Toru Takamitsu's beautiful score enhancing the visuals of thousands of extras, practical effects and stylish cinematography, making it one of the most stunning battle scenes ever filmed. The fact that Kurosawa was 75 years old and suffering from near-blindness, as well as the tragic death of his wife of 35 years taking place during production, an incident where the director only took one day off to mourn his loss, all adds to the magnificent achievement that Ran is, a film that inspires as much as it haunts and proves that when it comes to cinema, Kurosawa has no equal.


Hi everyone, Joe for jazzy's casewraves.com. Dodgers almost melting down here. Trevor Bauer went six innings, six no hit innings. And then proceeded to, he gave up a home run, David Price gave up a few more home runs. No, Price gave up two, Bauer gave up two, and now it's 10-six Dodgers after they were cruising 10-nothing. Crazy. Coors field, that's what can happen. Picker team eight is what's happening right now.  Big thanks everybody for picking their teams, no fillers or anything. I don't think we have to do a single filler for all these definitive breaks, all nine that we're doing. We're doing eight right now, the ninth one coming up in a separate video after this. We haven't done a single filler, so I appreciate everybody just digging deep and just buying teams straight up, I appreciate it. Let's select a die, let's select, select that one. And we'll go one, two, three for box A, four, five, six for box B. Five, one, two, three, four, five, six. Box B will be for break eight. Box A will be for break nine, our last break of the night. All right, big thanks everybody here for getting in on it. Yeah, it's kind of odd, I think we saw like, I feel like I saw one, didn't we see like a Whitmary field? But I feel like that was ages ago. Or maybe that was something, maybe I'm thinking of something else. Well, good luck here and pick your team. Eight ladies and gentlemen, thank you very much for getting in on the action, I appreciate it. First one out of the gate is Robin Yant. Two-time AL MVP, 3,142 career hits and an excellent penmanship here. That's for Rory and his brewers, Rory and a train whistle. Look at that, the world famous. All aboard the Big Hit Express. Woo-hoo, there you go. Nice way to start things off here and break number eight. Next one we have, we have me grabbing two cards. Let's grab one card here. There's Luis Garcia, rookie auto for Kobe Chan and the Nats, 14 out of 50 on that one. Then we have Roger Clemens, defining sees 1986, nine out of 10 on that auto. That goes to Josh Proust and the Red Sox. There you go, 19 out. The first train whistle in a while, Rory. That's pretty nice. Let's remind you of Roger Clemens' defining season. In 1986, that was his first full season, I think. Yeah, in 1986, he went 24 and four in his first full season, he had 33 starts, 24 and four, a 2.48 ERA, 10 complete games, one shutout, 250 innings, had 238 strikeouts and this was his third year in, was an all-star, was a Cy Young award winner and won the MVP. That's pretty amazing. Cy Young, well, in MVP voting, he beat out the likes of Don Mattingling who hit 352 and hit 30 home runs that year, beating out Jim Rice, Roger Clemens' teammate who hit 324 and 20 home runs, 110 RBIs. For the Cy Young award, he beat out Teddy Higura. Teddy Higura didn't have a chance. He only won 20 games, the two, seven, nine ERA and only 207 strikeouts. It's a pretty nice season for Teddy Higura, though. Anyway, that was the defining year, Josh Proust. All right. And we've got a duo of Yankees, Andy Pettit and CC Sabathia, nice, eight out of 18. That'll be Chris and the Yankees, that's not bad. Two great Yankee pitchers right here. Next one is Patrick Corbin, 15 out of 25. That is for Kobe Chan and the Nationals. Next one here is the Eck, Dennis Eckersley. Piece of his lumber, seven out of 50. How often do you think Dennis Eckersley has swung a bat? Wait, he was with a card. Yeah, I was gonna say he was with the Cardinals for a couple of seasons. Did he have, yeah, he's hit a little bit. Actually, in his Cubs years, if you're wondering, Dennis Eckersley has a lifetime 133 batting average. He has three home runs and 12 RBIs. 24 hits and three doubles in about 181 at bats.  That goes to the A, Steve Locke. Couple more to go, we've got Josh, eight out of 50 with the hologram sticker right there. So you know exactly where that came from. That's JC715143, Pirates, that'll be for Greg. Remember, we're using bigger top loaders and we're blue taping these right here with blue painter's tape. Just be careful if you're taking the tape off or if for whatever reason there's no tape, just be careful with those top loader shortage. Josh Bell for the Pirates, that goes to Greg. You can look up those letters and numbers on mlb.com slash authentication. See exactly the date, you can look at the game log. And the last one here is Aaron Nola, two out of 15. Another situation where you can go to mlb.com slash authentication and see if he actually made a start on that particular day they got this jersey. That's VS863763. So give that a look, Brian and the Phillies. There you have it, another nice definitive collection break in the books. I'm Joe for jasphyscasewrakes.com, the last box coming up in a separate video. I'll see you for that one next time, bye-bye.


After a whole month of not playing my favorite game, I have finally returned to Dragon Ball Fighters. Now I'm not gonna lie, I did not want to take a month break, I was just waiting for the rollback patch, which they confirmed so that I could play the game in its ultimate form with the best possible netcode, but that rollback patch ain't coming out anytime soon apparently. I don't know where it is, let's take it so long, but I really hope they drop it soon. And to keep it as classic as possible, we are hop into some ranked matches with the OG3, Super Saiyan Goku Krillin and Yamcha. Alright, I would be lying if I said I wasn't nervous, I didn't even know what stage we were on, it has been that long. Ooh, and he's skipping the intro, I'm gonna read him, I'm gonna read him. Jumping 2H, ooh, but if it worked, but if it worked I would have been a legend. I would have been remembered for all my, do I take the first drag rush? Damn, I knew it was happening too, my instincts are still there, I'm still that guy underneath all the rust. Damn, he is actually, oh, let's go, I'm that guy. No way he dashes there, no way he jumps there. Ooh, why, why, there's no shot, I'm this bad, it has been too long, okay, I need to warm up. Alright, I'm on the ground, what do I do, I get up, I'm throwing rocks, the rocks were nice.  Barrock kinda doing barrock things right now, drag rush, probably gonna see a level 3 here. Not a couple of level 1s, that's actually not the worst for me, I don't die here. No, we don't die there. Oh, as long as we don't die, what do I care? As long as I have any bit of health, that means I'm still in the game. Now we just switch out because I'm definitely not losing a beam assist this early. Level 3, what's the mix? I don't even know, it's been a while since I've used buff Krillin, let me show you why. Boom, oh, that would have been sick. It is lagging a little bit, but I was born in 19 frames, 6 frames is literally nothing. 6 frames is nothing, the rollback patch is not out yet. I was waiting for it, but it's not out yet. Get down. Shut up, don't talk to me. Damn, damn, damn, I can't block. Damn, I can't block. Do what you gotta do, do what you gotta do. 21 combos, we've seen them before. I actually haven't seen them in a while though, I don't know if the tech has updated. Oh, that move isn't even as good as it used to be. No, no, no, no, it's literally not that good anymore. Okay. I can't believe the lag right there, that was unfortunate timing.  Oh my god, unfortunate timing on the lag, but we preserve here. Preserve, I did the 2H. No way that doesn't, oh, I go for these.  I didn't remember how to end the combo, I think you do maybe normal heavy.  Ah, but it looks like he's giving me, if he wants to give me Bardock, I'll take Bardock. And now I'm gonna have to show you my buffed Yomcha. Yeah, I know Yomcha got buffed, I've seen the routes. Maybe I did them in an old video, I don't remember. I'm gonna show you why Yomcha's buffed. I'm not used to using that move in combos. I'm not used to using that move in real matches, that's crazy, that move is so good now. EX Wolfang Fist is so buffed. The dive kick is so buffed. I wanted to show the double. I'll take that.  If nobody got me, I know EX Galeclawz got me in the clutch, it's there. At my wedding, it's gonna be my best man. I don't know what else to tell you, it's always gonna be there for me. Watch this, I'm gonna hit him with the double. Oh, let me hit you with the double real quick. Galeclawz got me. Oh, command grab, you don't even have Spark. Oh, are we that guy now? Do I get a reflect here? No, I do not. Oh, no, it's 1v1. So far, he's always jumped. That was the perfect counter to that situation, too. Oh, no, dude. Oh, no. Oh, he should have had me. I'm done. I'm done. I'm done. I'm done. We're done with the range game. We are so done with the range game. We also remember Gojira has an EX uppercut. We do not want to mess with the EX DP, except no. Don't DP me. Oh, my God. He doesn't go for the DP. He's gonna lie awake at night thinking about how he should have. Get out of here. And I don't drop the super input. I really thought I would. Oh, six frames out of nowhere. But it doesn't matter. I was born in 19. We take game one. Round one, actually. Oh, my God.  Rollback update. Where are you? I need a grind. I need a grind. I need a reason to grind. I 2M here. Yamcha, help me out. Appreciate you. I go for this combo again because I'm different. I'm... Can I even blame myself there? Yes, I can, and I will. That was all me. Oh, this is bad. Why is he hitting me so hard? Oh, I just go normal this time. I go normal. I'm not... I'm not risking it.  Let's go. Keeping the corner. Man! No! Not the double Sunday out of the... What even is that? What even was the last 30 seconds? Curling escape, though. Ah, so bad by me. I'll take that. I blocked that. I blocked that. That was not real. We're just going to pretend that wasn't real. We're just going to pretend that wasn't real. For my mental health, we're going to get bar lock back in here. It's going worse. It's getting worse. It's getting harder every day. It's getting harder every day. Okay, what do I do here? Reflect. Yeah, I deserve that. I deserve that. I should not have woke up reflected. That was a disrespect and I did not mean it. If it makes you feel any better. So good, Yamcha. Yamcha, you are so good in this video game. Yamcha, you are so good in fighters, man. You are really just that guy. Do I go for the cross-up? Oh, Yamcha, how did you get so good? How did you get so good? Oh, Yamcha, what did they do to you, my boy? They got you. They got you looking your best self out here. Yamcha! It's just not even fair. It really is just not even fair. How did he win that? How did he win that? I should have won that for sure. I should have galed claws. I go G to switch in. Now I got to play a bit of defense. This is going to be the hardest part. If we make the comeback, this is going to be the hardest part of the comeback. This next interaction is everything. What happens after we get up from this level three is everything. That was everything and I messed it up. Do I get another chance though? I would do a lot for a second chance right now. What I wouldn't get for one more chance, one more once.  A level one. Did that, okay. I don't, I don't really think we needed that. Okay, that sucked. All right, let me clutch up. Let me clutch up. I just seem so bad on defense. I was always bad on defense, but now I'm even worse, which is just the most unfortunate thing. Oh, wait. Oh, come on. I'm so bad. Damn it. Damn it. Okay, it's going to be a learning experience. Okay, I'll take that. I'm just going to keep it classic here. I don't really want to do anything else. He might air dash, back dash, and then in that case, we're just too late. Yeah, yeah. Give me that. He was clicking buttons. He thought I wouldn't get him. He thought I didn't see it, but I did. Yup, yup. Now we're just running the show.  What? All right, let me play it a little safe here. Nice. What, where did the Key Blast come from? Why on earth did Goku think I wanted a Key Blast? Did I say that? Get off me. I'll take that. That was so bad. So bad. So many things went bad. Goku's getting beat down though. Oh God. I can't block in this video game. I just can't. I don't understand the physics. Gallic gun. I can't block the physics. Physics. Damn, I can't speak when I play fighters anymore either. My turn. My turn. Finally, some good reaction.  Hold it right there. Where do you think you're going? No, but all that sparking time. No, you won't.  Now do your level three. A DP really nowadays. Get back in the corner and I dropped it.  I can't believe I was not in my turn. I thought it was plus. All right. What is he? He always goes overhead, right? I just blocked. I blocked, but I don't reflect. Never mind. No, I don't know what to do anymore. Oh, it's a level three. Okay. Well, that changes things. Now I really don't know what to do. I went from confused to confused and scared. Oh, I did reflect. I'll take the reflect. I mean, vanish for the time. You can't do that anymore. I should. I thought I had sparking. I wanted to do the flex combo. I'm not going to lie. Please let that kill anyway. Boom. Double overhead. You got to watch out. You got to watch the after image. All right. We're in a pretty good position here. Yeah. Oh, blue combo. He didn't attack. He didn't want to hold any buttons. He got lazy. He got complacent. That's it. That's it. That's game. Game set match. It jumped up to six frames. I'm going to take my win. I'm going to be getting out of here. And I wonder if the reason it was lagging was me. Am I not connected on ethernet?  All right. And here we are. We're back with the second match against the real slim shady. And I couldn't have asked for much, but you know what? I might as well. I might as well stunt. Oh, God. I can't believe I got hit. I can't believe I got. I'm just going to spark. I want to play Yamcha. Oh, let me play Yamcha. Let me play a bit of Yamcha. All I want to do is do the Yamcha stuff. OK, OK, hold on. All right. So basically I'm happy to be back. I think this might be the only fighters I record today, but expect a lot of fighters soon just because I've been. I've been ancient to play and a lot of you guys in the comments have been like, damn, Dotto is done with fighters. But I made a promise a long time ago. Fighters on this channel will not stop until. Well, I guess I as a human being stop. So there's always going to be fighters on this channel. I just took a, you know, I like doing the variety stuff too. But let me know what characters you want to see on fighters or any videos in particular you want to see. Because once this rollback update hits, it's going to get pretty crazy. I'm going to start. Oh, I'm going to start spamming fighters. Take another hit with your Goku GT. Now let me switch back into Yamcha. I want Yamcha versus Yamcha. I want to keep it iconic. Nice. Oh, this is sick. How many Wolfgang fist do I get to do? Neo Wolfgang fist. Now watch this. He sparks here. He did not spark there.   Oh, spirit. Oh, spirit ball did not get there in time. All right. Spin on him. Yeah. We get a free spin. Oh, okay. I see you. I see you. I see you. Oh, that was clean. What are you supposed to do against the Yamcha for a cross-up? What are you supposed to do? I actually need to look up the Yamcha combo guide again. I'm not going to lie. I learned a lot of the cool stuff when he first well, you know, some of the like limited cool stuff, but the actual up-to-date stuff. I don't know. I probably don't even. Please. Please. That was a great stamp. Please. Please, man. Wow, he blocks this. What about a cross-up? What about a cross-up? Damn. Damn, he's just kind of moving. All right. Let me just keep it real nice and simple then. I'm trying to, I'm trying to pack up and leave, dude. It's just the return.  I just now remembered what I'm supposed to do there. Also, I've been hitting that Goku combo today, huh? I mean, the first part of it. I don't remember the follow-up, but I mean, the first part was the part that always tricked me up that Keyblast connection. I kind of forgot about that. Everything else after that, I don't remember. Super Dash, I can respect that. I'd be Super Dashin' sometimes. 2H, oh, why'd I get the back dash? I knew 2H was optimal there. Damn, I'll take it. Damn, I'm sad, but I'll take it. I'll accept it for what it is. Get down, okay. Let me see if I can hit this combo again. Yes, sir. Yes, sir, let me see. Okay, that's where I usually drop it. And we're changing stages. All right, so now that we know where I usually drop it, I need to get one full combo where I just hit it. It's not what I wanted. Ah, I should have done it.     What are you doing across the screen? Oh, I would never do that again. I would never do that again, I'm sorry. All right, I mean, we got him in win position here. He just stole our flare. I knew that's what he wanted to do as well. I'm just too quick with it. Yamcha kind of comboing, I thought he was gonna go for it. Nothing there, two S, nice, two S always clutch. Two S on Krillin, one of his best moves. And that's gonna be all she wrote. Mix up. Don't jump, don't jump, I'm begging you not to jump. Don't jump, I block everything by the way. I play Yamcha, I just block these. I do not tech these. He didn't do any of the Yamcha mix. Ready for this? Suki down. There's no way, I was gonna say that.  I was gonna say there's no way that connects. But good stuff, I'm gonna wipe my brow and get out of here for today. Hopefully you enjoyed this video. If you're excited for more fighters, make sure to like, button and subscribe. And just honestly, you can check out any of the other videos that should be on your screen. It's all good stuff. Hopefully, I think they're good. I'm in them, but I guess that doesn't matter. Anyway, bye.


Okay, it's the right time. Okay, good luck and take it away. I won't need you to do time. Okay, good morning everybody. My name is Diego Ciaccarelli and I'm here with Sambap Kotari, and today we're going to talk about learning to rank explained for dinosaurs. So before we go into the learning to rank thing, a bit about us. We're both software engineers at Bloomberg, and we work on search relevance for news. This talk is called learning to rank explained for dinosaurs because the team where we work is called NSRX. This stands for new search experience, and we basically work on making the user experience in news better for the user. So we own all these services that improve the quality of the results, that help users to find better news, and to browse the collection that we have. Yes, so here we have a dancer. So just a few numbers about our engine. We have around 300,000 users, and we receive 16 million queries per day. We have really tight constraint on latency because some of the user use do trading on that, so they really need to know when something happened as soon as possible. So we have 100 milliseconds timeout for indexing. So when we receive the story, the constraint is that in 100 milliseconds has to be searchable, and a query has to take less than 200 milliseconds. As for volume, Bloomberg is a journalism department, and so there are journalists all around the world writing news, but they also acquire news from other newswires like the New York Times or El País. They also have an agreement with Twitter, so we also index the full stream of tweets, and this makes a lot of news. So every day we receive around 2 million news stories, and at peak time we have to index 500 stories per second. And in total at the moment we have 650 million stories in the index. Search comes into different flavors. We have the normal search Google style, where you go search for a company or search for a country, and you get back top 10 results, let's say. And then we have what you call alerting, that is more Twitter style search, where you subscribe to a query, and then in real time you get the news as soon as they happen. So you can follow a company and see real-time news about IBM. And for this we have like 1 million and 500,000 subscriptions. So in every moment we have to notify more than one million users with news. So that's all about the new search. Today we're going to talk about learning to rank, and short of review, how many of you use learning to rank for search here? Can you raise your hands? One, two, yeah. Okay, so good. So we're going to talk about how this technique called learning to rank works from scratch, you don't need to know anything. The only thing that you need to know is that when you do a search on a search engine you get a ranked list of results, right? When you search on Google you get results one, two, three, four, five, and this is achieved because the engine gives a score to each document that is just a number. So it gives a score and then the documents are sorted by the crescent score. That's the only thing that you need to know, okay? So, and we're going to explain learning to rank in four steps. So there are four steps that I'm going to describe, and then after Samba is going to show you a demo that shows all the steps. So you'll see how to build learning relevance with learning to rank from the beginning. So what is learning to rank? Learning to rank is basically using machine learning to improve the relevance of the results of a search engine, okay? And why we want to do this, I have a nice example. So some time ago I was writing slides about learning to rank and when you implement learning to rank in Lucene and Solar or Elasticsearch, one of the core points of the code is this object in Lucene that is called query, okay, it's query.java. So I wanted to check something in the implementation of the class. So I went on this website that is quite famous and I like it a lot. We use it at work as well. And I searched for query because I was looking for that particular class and I got these results. And that was not what I was looking for. I was looking for the class query.java. So I refined my query. I changed it a bit to try to get the result. I wrote query.java and I got these, okay? Again, not what I'm looking for. So I try to do what I do usually on Google. I put it in quotes so that it means like I want to match exactly this string and I got these, okay? And this is like, yeah, I mean it's funny but like it happens to everyone in search, right? When you put it on a search engine, this will happen. It happens to us, it happens to them but it's totally natural and it's bad but happens a lot. And that's why there is learning to rank and that's what learning to rank is trying to solve, okay? So what is the point here? So I have a search engine, okay? And so what happens is that I have my query. So this is the normal flow. I have a query, I search for something and I decide that some results are relevant and some results are not relevant. So in this case, we have in green the relevant results and in red not relevant results, okay? And in this case, how I signed the score to my documents, I use this formula here that is called TFIDF and it's a standard like the default way that Lucine and Sola used to rank the document and it's a very base score that is basically looks at the frequency of the term in the document. So this term, for example, contained 10 times the term solar so it ranks higher. Now Sola and Lucine and Sola don't use TFIDF, they use something similar but it's the same concept. So base score, I got these results and I decide to tweak it because I'm not happy with these results at the end of the list. So I multiply the score by 2.3. It doesn't change anything because I'm just increasing the score so all the documents will still have the same score but I try to do this, it doesn't really work. So what I can do easily in solar or in elastic search is that I combine it with other things. So I can say I compute the score of the query on the title and the score of the query for just the description of the document and I combine these three things together, multiplying by different factors, the score. And by combining these three together, I get a different score for each document so that affects my ranking and now I get the relevant result here and the relevant result here. And I can keep doing that. I can add like, oh, let me look at the previous click that people did, let me look at the recency of the document and I can end up with something that looks nice. Where I have the two relevant results on the top and I'm up with that, send my new ranking score in production and release to all the user. And then what is going to happen is this, that for my query solar I get the top two relevant results on the top but then when I start to look for other queries, I get like for this query everything red on top and so on, right? So, and this happens a lot. Like people try to tweak the ranking function manually and they get these results. So that's what learning to rank is trying to solve. It's make this automatic, okay? Because the problem with this is that you really need to be an expert to know how to tweak. You really need to know your domain. Like I work on financial news and I didn't study finance so I can't really tweak the ranking function manually, okay? So, what are the goals of learning to rank? Don't tune relevance manually but just let the machine do everything for you. And also, so at Bloomberg we decided to implement this for solar when I joined the company. And one of the target when we wrote this plugin that allows to do learning to rank was to also make easy to experiment. So, have the possibility to plug different types of techniques to do learning to rank and make the thing easy, okay? So, we're gonna start now with the four steps. Before we start, just an overview of how learning to rank works. So, this is a normal search pipeline. We have user querying for something. The query goes to the index. That is a Lucene index. And then, Lucene applies this TFIDF scoring that is the score that just looks at the frequency of the terms. And then, it retrieves the documents with the highest score. So, in general, like Google use case, 10 top results. And it returns the documents to the user, right? In learning to rank, this thing's changed. So, instead of retrieving top 10 results, we retrieve, let's say, 1,000 results for the query. And then, these 1,000 results, they go through this block that is called feature destruction. I'm gonna describe what is it, feature destruction. And then, they go through a learning to rank model. And this learning to rank model will look at the documents and produce new scores. And so, we reorder this 1,000 document according to the new scores. We select the top 10 documents in the new ranking, and this is the results, okay? So, I'm gonna go through all these steps now. And so, the first one is not feature, but is training data. Because if you want to train your model, you need examples. And this is how you're gonna learn how to give better results. So, how does it work? What is training data? Training data is just a set of queries. And for each query, you need to know which documents were relevant and which documents were not relevant, okay? So, it's just this. You have a set of queries. For each query, a bunch of documents that were important and documents that were not important, okay? How do you produce this data? There are two major ways to do that. One way is using explicit data. So, you create an interface. You ask some annotators to type some queries and to tell you which documents are relevant or not relevant for each query. You can use, like, you can pay people. You can pay experts to do that in the domain. There are websites, like, on Amazon, it's possible to spin jobs where you ask users to annotate. It is, in general, very expensive to do that. And the other way is using implicit data. So, if you have users in your search engine, you can look at the interaction, right? If I search for something and then I keep refining my query, that's not a good sign. It means that all the documents that I skipped by refining the query were not relevant. I was not looking for that. If a user click on a document and spends some time on it, it means that it's interested in the result so that might be considered a relevant result. So, there are these two approaches. They all have pros and cons. As I said, explicit data is very clean because the annotators will tell you exactly what is relevant or not, but it's quite expensive. While implicit data is easy to produce if you have users, but it's very noisy. And sometimes it's so noisy that you can't really learn anything from that. Okay? So, moving forward in the search pipeline, we have a feature destruction. So, this is the first thing that you do after that you retrieve 1,000 documents and you need to extract these features. Now, what is a feature? A feature is just a number that describe something in your document, okay? So, it can be like if the query matches the title, so just a Boolean, it can be the length of the document in terms or a popularity score, okay? So, how many views these documents got in the past, for example, okay? So, just to give an example, here I have a query, the ticker of Apple and I got two documents for my query and I asked, I produced a feature for these two documents, okay? So, we have the feature, query matches the title, here is zero because it's false, here is one because it's true, Apple is in the title. We have a feature like is the document from bloomer.com and here is zero and here is one. We have this feature with the popularity score. We can see this is more popular, we got 3,000 views and so on. So, it's just like coming out with features that you think might correlate with the fact that the document is relevant. So, for example, in the example with GitHub, you can have, does the query match the name of the class as a feature, okay? So, these are features and then the next step, once that you extract all your feature vectors for the document is to train a model. Now, what is a learning to rank model is just a way to combine together the values of your feature to get the score. So, it's similar to what it did at the end by tweaking the ranking function but it's done automatically. So, a model, for example, might be the one in the first line, okay? I'm just getting multiplied by seven if the query matches the title, summing 42 plus is excessive and then another number multiplied by popularity, okay? This is a very simple example. It's called a linear model. There are much more complicated way to train a model and the way you train is that you get your training set and for your training set, you try to predict the label according by combining together the features, okay? So, you have labels that might go from zero to four and then you try to find the best way to fit the feature together over the training set and predict the score. There are multiple ways to train, as I said, and there are three big families. There's a family called PointWise that was the first approach proposed for learning to rank in the 90s and PointWise is basically this. You try to predict the score by looking one document at a time. So, you just look at a document and you try to predict the label. So, if it was relevant or not. Then there was another big family that came and it was much more better. That is called PointWise, sorry, PayWise method. So, here in PayWise methods, you don't look at the score, but you look at two documents and you want to predict which one is coming before. So, you're trying to predict, if I give two documents for a query, which one is the best one? And once that you have the comparison function, you can rank the document because you have a function that predicts who comes first. And then there is the final method, I mean the final family that is the one used now by search engine like Google or Bing that they are list-wise method and they just look at the whole list and they try to optimize their global ranking. So, as I said, like this method that are list-wise, we're gonna show you a list-wise method and they're usually based on families of trees. So, you have many trees and each tree says something very simple, like if the query matches the title is greater than one and the popularity is greater than 31, assign the score. So, they are like, they combine together multiple feature and they work together to produce a final score. So, they have much more expressivity than linear mode. And finally, the last step is the evaluation. So, you want to say if your model is good or not and there are multiple metrics that tells you if your search is good or not, you still need a notation to do that. So, you need to know for some queries which documents are relevant or not and here there are the main metrics that people use to evaluate learning to read. There is precision that basically says how many relevant documents I retrieved for my query with respect of all the documents that I retrieved. So, if I retrieved my 10 documents for the query and only five are relevant in the query, my precision is 0.5, then there is recall that is how much you are covering of the relevant documents in your query. So, if for your query in all the collection that you have in the index, you have 100 documents that are relevant and with your query you retrieve 10 relevant documents, your recall is 0.1, you're returning only 10% of the relevant document in the collection and usually it's important to have these two metrics good. So, precision and recall are the main things that you want in a search engine. So, before when I was looking for the query class, that's a problem of recall. In that case there is only one document that relevant in the collection because I'm looking exactly for that document and I'm trying to retrieve it and I can't. So, it's a problem of recall. So, you want to have these two. So, basically when you want to measure the overall quality of your search system, you use F score that is just the harmonic mean of precision and recall. So, you want to have both them good. And finally, we have MDCG that is another metric that look at the whole result list for a query and it returns a score that tells you how much the ranking is good. So, the more you push relevant document on the top of the list, the higher this MDCG it will be. Okay? So, we decided some years ago to implement all this logic inside solar and the reason why we did that was that we were kind of doing it outside from solar but it was heavy from the performance and also from the point of view of developing. So, we decided to put it inside to make it faster and to make it easy to work with that. So, before this used to be a feature, it was a Python function computing a value and storing it somewhere. This is now a feature in solar. So, a feature is just a JSON snippet where you have the name of the feature, a type that is a Java class that implement that particular feature and then some three parameters. And in this case, we're using solar feature that allows us to reuse the solar lucene query syntax to specify the value that we want for that feature. So, in this case, checking if the person, the document contain an executive person is just checking if the query person matches into the field category and if the field primary position contains one of these terms. And that's all. So, the engine will compute the score of the query for the document and that would be the value of the feature. This is how you plug the neat rank inside solar at the moment. So, it's just adding these two fields inside the solar configuration. And this is an example of a model. So, this is a linear model and again, it's just a JSON snippet that has a Java class that describe how to compute the model and the feature that the model is using and then how to combine them together. So, in this case, we just have the weights for our feature. So, benefits of the learning to rank plugin. As I said, simple feature engineering. We reuse the solar search functionality. So, like the syntax can reuse all the feature that solar already has and it makes easy to model feature by doing that. We had some improvements by doing that in we wanted improvements in the search quality and we wanted to do relevance tuning. So, we didn't want to tune the relevance by hand anymore. So, now Samba is gonna show you a quick demo on learning to rank. For the demo, we use a simple Wikipedia JSON dump. So, you know, there is this simple dump. It just contained the most important Wikipedia article and it's 150,000 documents. So, we are gonna index it into solar and then we're gonna set up some stuff that Samba is gonna show you. Thanks. Hey, so, first of all, you can find all the code related to this demo at this repository. So, the entire repository is dockerized. We wanted to make the demo reproducible so that it's easy to actually take a look at how we did this and it's very simple code. We have outlined all the steps and I'm gonna follow them exactly. So, you can just, when you wanna go back and reproduce this demo, you can. Okay. So, first of all, what we wanna do is we wanna bring up a solar instance which has the learning to rank plug-in enabled. So, let's do that. So, as you can see, I just ran a docker command which brings up a container that runs solar. It is reachable using this URL. So, we have learning to rank enabled on this and since our goal is to actually search the Wikipedia data dump, I have added a schema for that matches the actual data dump. So, as you can see, we have some 180,000 documents indexed and let's actually take a look at some of the documents we have. So, as you can see, the schema contains, for example, the title of the Wikipedia document, the wiki title which is like the link. It contains links to other Wikipedia documents which it references. It has the actual description of the document and this is the first paragraph of the document.  Now, when you actually query for something like Brussels, we get a list of documents that it matches and we get it along with the score. So, this is using like the default solar TFIDF methods. It's not using any learning to rank. So, let's actually, let's try to think of some of the features that more important documents might have. For example, if you take a look at these fields and what Diego described earlier, can you try and come up with some features that might be more important for a document which more important documents might have? Yeah, sorry. The number of incoming links. Yeah, sure, that's a good feature. Yeah, sure. Anything, anyone else? Yes, popularity, but right now in the schema, we don't have something like the clicks or reads. So, if you had that data stored somewhere, that could be a feature, but for this particular dataset, we cannot use that. Any other ideas, yeah? Oh, yeah, sure. So, that's a good one. Yeah, sure, that's another good one. That's two. Yeah, sorry, that's two good ones. So, yeah, all of these are features we were able to come up with. And surprisingly, they're very similar to the features I actually had written. So, you see these features are very intuitive. You can like think of them on the spot and they're very relevant to how these documents will look like. So, if we actually take a look at the feature store, which has the definitions of the feature, we see we have something like the like the frequent, like the number of words in the query that are contained in the description. The freshness, for example, the number of incoming links that it has. We have the original score that is provided by solar. And again, like we have the TFID score in the title instead of description. So, you were able to come up with all these features on spot and surprisingly, they're very close to the original feature store that we had implemented. So, you can see these features are very intuitive and you basically need to just write them. It's a very simple, it's just a JSON file, you can easily write them and learning to rank helps you actually extract these values very easily. So, let's see an example of how these feature values look like. So, for example, we have the same documents we had in the earlier search, but we have the actual values of the features. For example, we can see that our query Brussels has a freshness score. It has the number of links that this document has. The score of the actual query is in the description and the title. So, the description score and the title score. So, you can see it's very easy to extract these features once you have just provided that JSON definition. And next, so what I did is now we have the features, we have the documents. What we want to do now is get the features out, train a model on it and evaluate our results. So, I wrote a simple web UI so that you can give them to judges or people who are experts in the domain to mark the documents as relevant or not. So, this is where we'll get a training data set from and it also has a bunch of screens for actually taking a look at how our model performs, like the evaluation part. So, for example, we can type the same query again and we see like a list of, it's the same list of results and you can see there's a button here where they can mark the document as relevant or not. So, for example, this seems like a relevant document. I'm just marking it as relevant and it's saving that particular document as a relevant document. So, this is how you can build up a training set by giving it to people who can just like look at, type in a query and then mark the documents as relevant or not. And also you can see this particular documents comes third in the result, it's not the top result and you see a lot of results that are not relevant to the actual query. So, let's take a look at the baseline solar model where we haven't implemented any, we don't have a learning to rank model at all and we'll evaluate it on the same matrix that Diego described earlier. We'll check the precision, we'll check the recall and we'll check the F score. So, yeah, as you can see for the original model, for the top five documents, if we just take a look at the top five documents returned by the query, we see it has an F score of 0.38, a precision of 0.41 and a recall of 0.49. All of these matrix, the higher they are, the better kind of results that your search engine is returning. So, we can also take a look at how this, like the original baseline solar model performs for each query. You can check for each query, the F score precision and recall and you can actually check the documents that your annotators marked as relevant or not. So, now let's try and use learning to rank to improve these results. So, first thing we'll do is, we'll try to train and evaluate a linear model. A linear model will just take a look at the features we had earlier, like described and it'll combine them using some weights, by assigning some weights to each of the features. So, to do that, all you need to do is run the script. So, it gives you two options. You can either train a linear model or a lambda-mart model. We wanna train and upload a linear model. So, that's done. So, as you can see, a linear model right out of the box is not performing that well against the original solar model. Now, this might be due to a number of reasons. Maybe the data set we have doesn't have enough examples. It's also because right now we have not normalized our features. So, different features might have different distributions and we're not combining them together in a meaningful way. So, if you want to achieve better performance with your linear model, you can basically try to reduce your feature set. There might be some features that are very noisy, that are basically deviating the model from achieving ideal results or maybe some of the features are overpowering the other ones. So, we can actually compare how both these models look like for each particular query. For example, here we have the linear model on the left side and the original model on the right. We can see that it's not performing that well. So, for example, the linear model puts the first relevant result and maybe the sixth or the seventh position. Here it's in the second position. So, let's try and improve on that. As Diego said, we have better models right now, like tree-based models, which take a look at the features and then basically go through a set of decisions. For example, if they see that the number of links, if a document has a lot of links, go down this particular path, which checks the score of the query in the title and then so on. So, it's able to combine the features in a much more meaningful way than just a simple linear model with weights attached to it. Before we do that, there's something interesting I want to show with the linear model. So, we have trained the linear model and we know about the features. So, what do you think? Like, if there's a feature like the number of incoming links, what kind of weight should it have? Should it have a positive weight, negative weight? Any ideas? Anyone? Yeah, obviously. And what about... So, what about any other features that we had discussed? What about freshness? Do you think you'd prefer a fresher document than an older one? Yeah, so it's, again, a positive weight. What about things like the length of the document? Any ideas? Are we doing any? Oh, no, it's just taking a look. It's not normalizing the length at all. It's just taking a look at the length of the document. How do you think... What kind of feature would that be a positive feature or a negative feature? Yeah. Yeah, sure. So, if we take a look at our linear model and the weights it actually learned, we see that for something like description length, it learned a negative weight. So, it knows to penalize documents that have a very large description. For something like links length, it gave it a very high positive score. It gave it like a plus 31 weight. So, it knows that it was able to learn and extract the fact that documents with more links are more important. So, you can see it was able to do that with very little... We were able to set all of this up in very easily. So, yeah, that's a linear model. Now, let's try and train a tree-based model. So, we're using a tree-based model called Lambda Mart. It is available in a library called Ranklib. Let's try and train a very basic model. So, this tree-based model, it looks at a metric to optimize. Right now, what it's trying to optimize is the top 10 results. So, it's basically trying to put the most relevant result in the first position, the second most one at the second position, and so on. It's not just looking at the top 10 documents out of order and just figuring out if there is a document from positions five to 10. Those are marked at a lower relevance if the relevant documents were in the positions one through five. So, we've trained this model and we've uploaded it to solar. And let's check how it performs. So, we can see that the tree-based model actually performs much better than the original solar model. You get better metrics across the board. And if you check at a query level how it was performing. So, yeah, for example, we have the Lambda Mart model on the left and the original solar model on the right. You see, it's put all the relevant results on the top and that's typically what we want. And we didn't have to tune any of these weights manually. It was able to learn all of these weights and it was able to generalize it across all the documents. So, it's not just the first one. If we take any of the other queries we made, for example, Apple, we see that it's still, it's tried to learn a general formula so that it works better across the board, not just for one particular query. Now, this, typically if you're doing it manually, this would be very hard to do. But right now all you have to give it is a dataset and a bunch of annotations marked as relevant or not and it'll automatically learn how to rank the documents. So, let's try and see how it performs for a query it has never actually seen before. Yeah, can you, let's try and annotate a new query. Can you give me a query? Any query? Yeah, like we don't know how it will actually perform. What? Oh, keep in mind that this is simple. Wikipedia, so it has. It's only there. Yeah. Sweden. Sweden, okay. So, we see that we have a bunch of documents from Sweden. Let's try to mark something relevant that we see. So, Sweden is all the way in like some 18th or 16th position here. Okay, now, this is a query that we have never seen before. Our module doesn't know about it at all. It's not being trained on it. So, let's just for now mark this particular document as relevant. So, yeah, so we see it's here.  Whoa, so it actually got it in the first place. Now, it never knew about this particular query. And this is the first time it saw it and it actually put it in the first place, whereas the original solar model put it all the way in like the lower 20s. So, yeah, that's the power of learning to rank. You can also do something, some other cool things with it. For example, now, if you take a look at the parameters that this script accepts, it basically asks for the number of trees, a metric to optimize, and the number of documents for that metric to optimize at. So, basically, if you have something like a UI where a user types in a query and it automatically directs them to like the top first document that is returned by the search engine, then you basically wanna optimize the precision for the first document. Now, even though we see that it's not performing as well as our other model, but it specializes in something that it does, so it will try and boost the most relevant document always at the first position. It will make sure that the first document you have is always the relevant one. So, if we actually take a look at the queries and the documents, we'll find that the first document will always be relevant. So, for example, Apple first document is relevant, Berlin again first is relevant, and so on. So, yeah, this is like a basic demo of how easy learning to rank is to use, and how you can basically do away with a lot of manual labor, manually tweaking the ranker function with learning to rank. Yeah, we are open to questions. Thank you. Yeah. What's not relevant and became relevant? Yeah. So, that was basically, oh, yeah. So, the question is we had in the UI, when we searched for Sweden, we had a bunch of queries that were marked as not relevant, and then we clicked on it, it became relevant. So, what's the front end behind that? Yeah, that's not, I mean, that was something you built yourself, right? Yeah, that was something we built ourselves. So, what we tried to build was a basic annotation tool. So, you can give the users a UI, where you can, let's say, pre-populate certain queries that you want them to evaluate. They look at the query, they'll get a list of documents, and they can simply click on the document they think is relevant. May I suggest that you do a thumbs up, thumbs down, which is unmarked. Yeah. And then, if you create a thumbs up, it became three, all right when you do thumbs down. Yeah, sure. So, you might choose both directions, right? Yeah, okay, yeah, yeah, that definitely makes sense. That's wonderful, I love this. Yeah, yeah, yeah, that's true. So, oh, sorry. Yeah. So, the question is, why didn't we do any cross-validation for our machine learning models? Maybe, and why we didn't mention it. So, for the purposes of this demo, we just wanted to showcase what learning to rank is capable of, and how easy it is to set up. We didn't want to get into, like, Yeah, yeah, yeah, yeah, we, People in the room, they never, they didn't know what was learning to rank at the beginning. So, the focus of the talk is not how you train a model, but it's how the whole framework works, and how like it makes elements better, then you can do like, there is a machine learning course on Coursera about machine learning. If you want to know more about how to train a model, you can do the course, learn about cross-validation, and machine learning techniques, but that will require a whole semester course, I think. It's not that... Yeah, I don't get any less of that, but like, let's just talk one mistake, because we're practically in crisis order, let's do it. Yeah? So, in the interest of getting something going, how do you know when to get more labeled data versus tweaking your features? Okay, so the question is, how do we know when to get more training data rather than tweaking our actual algorithms and the ranking function? Do you want to? I can get it. Yeah? So, that's kind of like, there's no real answer for that. Like, as the guy over there was saying, like the problem with adding a lot of features is that the risk is that you are overfit. So, the risk is that like, basically your model learn like really how to be good on your training set, but not like on, it doesn't generalize. So, it doesn't, at that point, it's not able to predict. So, understanding when you are like have too many features and you're overfitting can be done by using like a validation data test that contains query that you've never seen before, and then you evaluate your metrics on this new data set and you check the metrics. Like, if the metrics like drop down on the validation data set, it means that your model didn't generalize. So, it didn't really learn how in general to rank the documents, but it just like memorize your training set. So, by doing that, you can understand if you have too many features, reduce the feature, and then check the performance of your model again. If they are not good, you want to add new examples. Okay. Yeah. Yeah? This is a search on document level. How easy is it to use these kind of features in models to find part of the document? So, the question is right now, whatever we demonstrated was on a document level. How easy it is to extend it to parts of the document. So, most of those things would depend on how you've actually structured your schema. If your schema is structured that in your sense, that a document that you want to return is like parts of the document, you can basically create a field for that and then you can create features based on that so that when you search for a query, whatever feature value is computed, it gets boosted for whatever you think is relevant. For example, let's say you want to, you have a part of the document called as the links and you only want to search on the links and not on the rest of the content of the document. You can basically have a field in the schema that is like a list of links and you can have a feature that only looks at the links and you can make it like maybe, so when you're marking the documents as relevant, you only mark the documents which have the link as relevant so it will try to pick up on the fact that you're looking at the links and not the rest of the document. If you are looking for a particular block inside the document, what you can do is that you can split the document in blocks and then see the problem as learning to rank but done inside the blocks of the document. So you basically retrieve the document and then you go, you have another model that will rank the blocks inside the documents so we will rank them and we'll put, hopefully the block that is the one that you want.