All right. Very quickly, Project 2 is released. I sent an email out on the mail list and you should have all received it. So all the details are on there. We're not going to go over it now, but it'll be four recitation sections. So go to your recitation section, go to any recitation section so you guys can talk about the Project 2. Any other radio expression based questions for Anna? Every got regular expressions, lots of loaded data. Yeah, so regarding all the problem one question, the dead one has like a plus sign in it, so how do you do the plus sign? Is there a plus sign in regular expressions or the alphabet? No. Okay, there you go. I can see it now. The good way for showing you're working on that one is showing a sequence of steps, breaking it down and applying the rules we talked about here. So for instance, we talked about... That's what we got here. Right, so like in this example here, this would be exactly... hell, yeah, they're here. Right, so we have... so like we were saying what's the language described by the radio expression, parentheses A or D, parentheses C. Then we could break it down like this. We maybe also want to do one step to do the language defined by A union with the language defined by B and then another step where we replace that. So you just want to follow all the rules so that we know you're applying the rules in the right places. So... Yeah, that is exactly what we went and defined all these. You want our answers overlaying the whole marker separately? I'm not sure what that means. Like you gave us a doc? Oh yeah, if you want to put in a doc, that's fine. If you want to... it has to be a PDF though. I'm not going to accept anything else. But would it be fine if the answers are just in its own document just separate? Yes. Yeah, that'd be fine. All right, let's continue. So we got down... we started writing tokens. That's already left off last week because we started to try to define tokens. We started by defining a decimal number and we also talked about why we need to use a hash here because we want to match a regular expression that matches the dot character, the dot that's in the alphabet, not the dot that is the key coordination operators in our regular expressions. So we did all that. We talked to these examples. We kind of got to somewhere where we got almost closed-ish to what we wanted, but we still had this problem of double zeros and multiple zeros. But we're not really going to go into this any further. I just wanted to kind of show you and give you an idea of that. And then it'll be a little tricky to write a regular expression that exactly matches what you want and doesn't match anything that you don't want. So we built up regular expressions. We talked a little bit and tried to develop some intuition about how we could write regular expressions to define tokens. So what is the overall goal of lexical analysis? Why are we doing all this? What was that? Which not tokens. From what? Sequence of characters. The string is a sequence of characters. But I actually think of it a little bit lower, like a sequence of bytes. Because that to me really signifies, okay, these are exactly like, that's what a file is, right? A file on your computer is just a sequence of bytes. So we have incoming to our program a sequence of bytes, and lexical analysis takes those and abstracts them into tokens. And that's our goal is. So in project two, if you're going to be in the second half of project two, you're going to be given a lexer. So a lexer does lexical analysis. It turns the sequence of bytes into a sequence of tokens. And so we're going to talk about lexers as if they have an API of a method called getToken. So what's an API? Application program interface. It's a set of pre-written functions that you are allowed to draw from. So we're going to say we have this lexer, or we're going to learn how the lexer works. In project two, part two, you're going to be using a lexer we're giving you. And it has a function called getToken, which will read from the input string and return the next token in the input string. And we've been talking about regular expressions, because we want to define tokens with regular expressions. So we know precisely what they mean and what they don't mean. So going back to that initial image, this is the part we're focusing on. So we've built up our knowledge of regular expressions. Now we're going to apply those to extract tokens from bytes. So the question is, what does getToken actually do? And so ideally, every time you call getToken, it would return whatever the next token is from the input string. So here you'd be like num, id, num, operator, id, decimal, left brace, right brace, whatever. And so it's reading through the input string, the bytes, and it's telling you which ones they are again. This point would be dumb, but did you tell us what a token is? Like what is the essence of a token? What is it? Because it seems like we're classifying different things in the stream that we're reading in. So what's a token and what's not a token in that? Kind of philosophical. A token is whatever you, the person defining token, is defining that. With Rejects. Yes. Are we going to be reading in this byte stream and we encounter something and we run it against several different Rejects or just one? Yes. So that's exactly what we're going to get into. So hopefully that'll make it clear, but the question is really good about what is a token. It's really just an abstract concept. A token could have a one-to-one mapping of a character like left angle brace or left parentheses. Those are tokens in the language probably and they're tokens in their actual characters. It could be a one-to-many, well more than one, like if the character's IF mapped to a token, it's a token. Or in this case, num, there's no limit on how many characters a num can match. We just know what a num has to look like. It can't start with zero, but it can be any number of digits that don't start with zero. So now the question is, how do we define these and once you define how we actually use these to kind of put these things together? Okay. So in our lexical analysis, essentially what we're going to do is define a series of tokens. These are going to be the tokens that are important in our language. So it does all tie together. I guess you could think of tokens as just completely arbitrary from a language, but the purpose is to define the language. And so if we have, let's say, a language that has an ID token, letter, concatenated with letter, digit, underscore, star, this is what we actually all derive. Or mostly, I think we have an underscore, could start a letter, but let's stick with this right now. The dot character, so what is this for your question match? Just the dot. Just the dot character, exactly. We know because of the slash. The number we set is a p-digit concatenated with any number of digits for just zero. So decimal is number followed by a dot, followed by a digit, followed by any number of digits. So we'll just use this for now. So, is letter, p-digit, digit, are they tokens? But the tokens are the things that the rejects match. So letter is a regular expression. Digit is a regular expression. And this ID is also a regular expression. But I'm saying here, these are the tokens that I care about.  When I'm talking about ID, I want a letter. So instead of saying I want a, or b, or c, or d, write that all out here and here, I can define it in one place and then use that. And so we'll use most of the time, I'm pretty sure almost all the time, we'll use the convention that all uppercase letters are yours and noting that this is a token. But do these tokens only refer to regular expressions or these helpers? Here, what do you mean where? Like what? Because it's not in letter and it's not in digit. Oh, it's literally right here. So this is an underscore character. In this regular expression right here. I understand that, but what does it mean? It is the underscore character. So I actually didn't define the alphabet, but the alphabet here would be a through z uppercase, lowercase, all the digits, plus underscore, plus a dot character. Okay, because you don't have it in the digit. Right, because the underscore is not part of digit, right? Digit just defines the letters of the digit. So then you have to define underscore as one of the, like doesn't it have to be in one of the alphabets though? No, no, no. So these, so the letter digit, p-digit, those are just helper regular expression definitions. Okay. So we did them here, but we're using the same definitions we already had. Right, I know, but I'm looking at the slide for the last time. Like this. So these are those definitions here. Right, I understand that, but I guess my question is if there's an underscore character, right, where did it come from? Because we never, you have letters of digits up there, but you never said, oh, there's also this other thing an underscore character. The main problem is I've never defined a sigma. Okay. So, you know, I guess so informally, right, so I never defined what the alphabet is. It's basically a through z capital A through capital Z zero through nine underscore. Right, and so I guess from here on out we'll just kind of informally okay, that's yeah, so that's basically where it comes from. So I skip that step, but kind of when you're doing these, you kind of just if the character appears here, it's in the alphabet. Okay. We're getting a little bit further away from like the precise mathematical definition. Okay, good question. Okay, so we have these regular expressions, right? So decimals composed of what? Number followed by a dot, followed by a digit, followed by a digit star. So we already said the digit by itself is not a token. We're not interested in a single digit. But num is a token, right? If I had a case where a token is composed of another token, right? Do you technically need the digit in between the digit dot and digit star, or could you just do dot digit star? If you do digit star, it will get empty like one dot something. So this way you have to at least do one dot zero, but now the possibility of one dot zero zero zero zero zero. Which we can say maybe we want that for terms of accuracy. Okay. Okay, where is it going? Okay, numbers. Great. So the question is, okay, let's think about this. Given what I already have, could I write like a regular expression like this? This has a regular expression. This is ID, oh, sorry, I can say it. Is ID concatenated with num or digit? Yeah, so this is a recursive regular expression definition, right? I'm referring to itself here and regular expressions must be finite. I guess I don't know if we discussed that or not, but the regular expression itself must be a finite string. This is never going to be a finite string. So this means that what we're using here, like when we say num is equal to what's in there, p digit p digit concatenated with digit star for zero, right? When we do this, when we say num is this and then we use num here in decimal, right? We're not causing any recursive definition. We're just literally using equality. You could replace every instance of num with the thing on the right. Just like you could replace every instance of digit with zero or one or two or three or four, so you can get a finite regular expression when you do all those substitutions. Right? It doesn't just be one. So this is a helpful shorthand for us and but the important point is you can't have any recursive regular expressions. Question is there? So, get Tokyo has an API. It takes in nothing. You can think that it's breeding from the input string. Right? We want it to return a token. So what does it return on this string? 1.1, ADC, 1.2. Let's walk through it one by one. Could it be dot? Why not? So it's first got to breed from the beginning. Right? And so the first standard here is a one. Could one possibly match dot? No, it can't possibly match it. So there's no way that's going to match. Could it match ID? I don't know. Because it must start with a letter. Right? Exactly. And this is not a letter. Could it match a p-digit? Could it also match decimal? We have a tie here. So what do we do? We give up, move to the next one. Why? Do we do it in a whole place? Which way? So we can stop. So you have to continue to read the string until you've eliminated all of the possible. We could stop. We could just stop and save the number. It actually doesn't, does one match decimal? Is one in the language described by decimal? No. No, but it could be. Yeah. Right? Because it matches the start here. Right? So one way to do it would say, we could say, hey, the very first token that matches the number, or the very first token that is matched to return that token. But does that actually give us what we want? So think about it like this. So we have number here defined by this and I have an input string of one, two, three, four. Right? That's my input string. So if we go at that logic, I have other tokens. Does this, look at the first character. Does this match this token? Yes. So would we want to stop? Yes. In your scenario. In my scenario, yeah. So we would return, so get token a num. And then, so parts of this says this is a token, so then it starts from here. And so what would this be? A num. And then another number and another number. So does this make sense? What do we want num for? Why do we write num? Any number. Yes, any number, the whole number. Right? Yes, the strings one, two, three, four are in the language defined by number. But so is the string one, two, three, four. And so based on what we really want, we want, abstractly we know this is a number. Right? And so we want get token to just return one num. Which would be this whole string. So this is why, yeah, there's an alternate way if you could do this, but this makes more intuitive sense. Does this make sense with what our goals are what we're trying to do here? Right? So here 1.1, ABC, 1, 2. Right? Is it a num? Is it a number? Is it a decimal? Could it be an ID? What was that? It's zero. So based on what we just kind of talked about intuitively, what do we think should be the first token returned here? 1.1 as a decimal. 1.1 as a decimal. Right? And so when we do that, get token you can think of that input string as being consumed. Right? It's saying, okay, I know 1.1 is a token and that token is num. So it's going to return num. But the next time you call get token it's going to now read from ABC, 1, 2. As if you called it on the string ABC, 1, 2. Right? Because it's trying to put all these input strings back into num. Turn this input string into a sequence of tokens. And so when it tells you that something is a number, bam, it's maybe its decision, it's done with that input that it ran it back to a number now it's going to start reading the next input string. And so when it starts reading from here, what's it going to be? Is it going to be ABC and ID? ABC, 1. Why ABC, 1? Just like we saw with the 1, 2, 3, 4. Right? Yes, ABC is in the language described by the regular expression ID. But so is ABC, 1. Is ABC, 1 period? No. No. So we go back and we say ABC, 1 is an ID. And so now if we call getToken, what would the next one be? Dot. Dot. And then a no. Just on your first lesson. Yay. It seems kind of weird because if you look at this and I ask you what tokens are here you may say oh, a number, an ID or sorry, a decimal and ID and then a decimal. But that's because you can look at the end and say oh man if I just took that 1 from that ID then I can make a decimal instead of a dot number. Right? But lexing does not do any, there's no backtracking or anything. It's very much a greedy algorithm of I figure out which regular expression matches the longest and I say bang that's the first, sorry which of these tokens matches the longest and then I say bang this is the token and then I read all that and I say I'm never going to go back and revisit what I did before. That's always going to be this is always going to be a decimal and this whole thing is always going to be an ID. Okay. So this is called the longest prefix matching rule. Wait, longest matching prefix rule I guess I should probably read it if I'm going to say exactly the thing and mess it up. So the idea is we want to find the lexer every time getToken is called the lexer wants to find what's the longest token that matches the current point in the input string and it's going to say that's your next token. And so what happens if we enter a situation where we have number, that's not number we have num just like we always have and then I have another token let's call it I-num or something like that which is digit.digit star so this is p-digit so now let's say I have the string one two three four a-d-c right so this is my string I call getToken using these tokens which token is going to be returned so what is the longest prefix the longest matching prefix rule I will say l-n-p-r I don't know hey guys which token is going to be returned? num why? because it comes before I-num so talking about longest so num matches how many characters here starting from the beginning four up to this four and I-num matches how many characters right so they're both the longest and so then we need a tiebreaker basically so the convention we're going to use in this class is that we're going to break ties by giving preferences of token listed first in the list so if it comes so higher up on the list of tokens that's going to be the first token that we choose if there's ever a tie so now we need to go back too far back now we need to go and try to figure out okay you were doing this in your pen of tokenizing this 1.1 ABC 1.2 right but how do we actually do that what's the algorithm for doing this so that you can do it and the compiler can do it right we need to keep into account this longest matching preface rule so let's see if copy-paste works kind of like superlink okay these are my tokens this is my input string my input string is what was it 1.1 ABC we'll do 1.1 again wait it looks weird because it's going to parse differently even though it's like symmetric okay so what were we doing so try to think through what you were doing so this is the input string right we haven't called get token yet so we haven't read in any of the input and consumed the input right so looking at this first character of the input string is 1 okay so which one of these tokens match num decimal does decimal match so remember and this is something I think we've been kind of informally using this when we talk about regular expressions this is basically part 2 of your question 2 of your homework when I say does 1 match the regular expression decimal what I'm saying is is the string 1 does it exist in the language described by decimal no is it in the language described by num yes so that's a match right okay so we've only looked at this character here what's like a key trap so we've seen so now if we stopped here right if let's say there was no more string left we haven't looked at the next character we have no idea what's left we're just looking at it essentially oh no so we have to visually do everything right so we're considering only this one we're not considering anything else after so just looking at that one we'd say well a match could be a num right we don't know what's next but we know num and we know it's length is 1 we've matched the number of 1 right and we specifically know what doesn't match right we know id and dot don't match but we have another idea of some that have the potential to match so what's the difference that means that we know that there's something else in the string and therefore it could fit into another category if we continue reading input so we still don't know if there is anything else left yet but yes exactly but what we we want to think of it as one has matched so far in let's say decimal but it hasn't actually matched yet but it could continue to match right so we know definitely decimal right we know that that's a potential why yeah because let's say one way you can think of it is that there exists a string in the languages described by decimal that starts with one that has the prefix of one right if that's true then you say well I don't know what's happening afterwards but I know if there's strings that start with one then that means that I could potentially match something so can id potentially match without number well does number we just said number currently not true right so the string one is inside the language defined by number but are there other strings that could be longer than that that start with one yeah right and so I'd say okay these are potential matches then I go and look at the next character I'm going to try to draw a straight line oh I'll get so good at this okay so now I'm going to consider this next character as your dot now do I need to say does the string one dot match id why not potential match we've just decided in that last step what could possibly match and we said if id can't match one if there's no strings in id that start with one then there's no possible way one dot is a potential match right so this step actually limited the amount of regular expressions we have to consider in this step so now I ask the question well does one dot a does it match potential I mean decimal decimal sorry yeah let's use these both words so let's think about match does it match potential right one dot so we have one we have a dot but what is all the numbers in decimal have to have after that a digit right but it's still potential right exactly okay what about no no so the string one dot is not in the line it's not doesn't match and no strings start with one dot it's not possible right so there's nothing here and the match didn't change oh sorry not didn't change there's nothing here nothing matches one dot because there could be another dot right I mean after this so maybe we need to go back and say yes the longest one I could find was number with length one right but we still have the potential for decimal to match so we need to do one more check but we need to keep going so now we check here and we're considering the string one dot one but only considering the regular expression decimal right so is one dot one match decimal and we're going to say it's length three you know it stops there because it's also a potential match for decimal exactly right so one dot one is a potential match for decimal so now we need to keep going I'm going to check the next character it's going to be one dot one a so does that match decimal yes one dot one a oh sorry does it match decimal does it have a potential match decimal no empty set here we have nothing here and so should we go on to the next character why? there's no more potential right nothing could possibly match one dot one a b it actually doesn't matter what the next character is we already know it's not even possible for that to match right and so then we go and say okay which was the longest match that we've seen so far decimal with length three and so this is what we're going to return as the longest match that we've seen so decimal and length three and if there was a tie between two regular expressions at the same length we would choose the one that was higher up on the list now I call get token again what happens to my input string yeah so we did read a off of the input stream does it get put back on by some magical convention or did it get eaten we read it exactly we read four characters right we read one dot one a right but we still want that a why? because it might be a part of the match for the next token definitely but why do we know we need to put it back yeah but why do we read it again why do we know we can safely put that back and not the one before it we didn't use it yes we did not use it the token is only length three so how many characters from our input stream compose this token first three so now we know we can get rid of those by returning a decimal and saying that the length is three we're saying okay great these three are already removed it doesn't matter how many I had to look forward to determining which one was the longest match I know that last token I gave you is length three as three characters this one one dot one and so when I call get token again where am I going to be reading from yeah but if you're reading from this stream ABC one dot one and I'm going to call get token here the lecture is smart enough because the condition that we just went through A could have happened to an arbitrary number of characters I read all of these and there was still potential but we decided we didn't want these because the longest match happened to be of a different type the lexer is capable of storing all of that and putting it backwards supposed to before we try and parse the next token yep yeah it's not magic it's pretty easy you just think of like yeah you just read everything in and then just go backwards again characters you can think about doing that if you really are reading from an input stream but yeah this is how yeah because what if we had let's say what if we had token called A which was well it's called food and it is A star followed by B and then I have bar which is let's say A star or A and I have the input stream how many A's do you want C if I go get token on this how can I differentiate between food and bar B exactly so it's either going to end with B if it ends with a B then I know it's a food if it doesn't then I know it's a bar but I can only know that if I read all of those A's right and then I read this C and I say oh it does not match bar and it doesn't have the potential to match sorry it doesn't match food and it doesn't have the potential to match food it also doesn't match bar but this is the longest match that I've seen so far of bar and so all of those are going to get consumed you may have to go all the way to the end because you can have things like A star B so you have to read in a bunch and then go back but here's the key once you make this decision of it's a decimal of length 3 that's that decision so it is a little bit confusing that I said there's no backtracking there is going back to the input because you may need to read a lot of characters forward but you never change your decision on what your decision of the get token is they're always independent basically like the the lecture has no memory it doesn't know that it just read a decimal it just knows now the input is ABC 1.1 I saw some hands we're going to re-raise them how does the lecture identify the potential if it doesn't know the future so we don't know the future so how does the lecture identify whether it's a decimal or not how do you identify based on the regular expression if a decimal is not matching one right now so how does the lecture identify that it's a potential the short answer is the lecture can tell if it doesn't match like it's already said that it can't match or that it's still in the process of potentially matching so you go over more of this in 3.55 when we talk about regular expressions mapping into DFA's so you would know based on the DFA that you're still in the DFA so you're still up a potential to match and you haven't gone to a failed state yet if you go to a failed state then you know it's not possible so now it happens when I call get token on this so now I'm reading this guy A, if it could be an ID wait, can it be an ID I need to read my match first does it match ID? yes does it match dot does it match none does it have a potential to match ID does it have a potential to match dot no, the potential to match none and the potential to match decimal so we have ID and we have fear ID of like one perfect and now I'm going to be here considering the strength so it's an ID and ID so it is an ID and matches ID of like two and does it have a potential to match ID and we can go again just see well so does it match yes does it have a potential to match yes so we do it again so now we do ABC one does that match an ID right, because we said an identifier is a letter followed by any number of letters digits or underscores does that have a potential to match an ID yes yeah, ABC one, if there's another digit underscored letter after it then it'll work so we say ID we do it one more time here we get to this dot after ID and it counts exactly, so we're done here we say it's an ID of like four we return that as we get token and so what we have now is the next time we call get token what's the input string going to be dot one, exactly and we can step through this again and see that it would return dot and then it would return no, right, and so if I ask you a question if I gave you like tokens like this and then we said okay, what does get token return if you keep calling get token until it returns no more tokens what is the sequence of tokens that it would return you would say decimal ID dot no and if you want to show your work in exactly this form I have a question, yes what would happen if you reach into file you would use your last match so what if your last match wouldn't or you can think about returning an error if it doesn't match any tokens what do you do if it doesn't match any tokens here's a good tip for taking tests if we haven't really talked about what happens if tokens don't match and there's no way I say in case the tokens don't match return this token and you're doing the test and you get to a point where you think oh no, there's no token that matches what should you do start over yes don't ask me if it's possible for there to be no tokens I just have to say do your best that's what's fair but based on the questions and context that should be a sign cool, okay so so this is exactly what we did so I'm going to briefly walk through this because we all just actually figured this out and did this so this is the way you show your work when doing this flexible analysis here when doing this get tokens so why is it important to show your work on something like this, why is it important yeah well partial credit I literally exactly said that but why is partial credit so important on this kind of stuff yeah what happens if you mess up on this first token everything else gets completely messed up and so if you just write down four tokens and the first one writes the last three are wrong that's 25% but if you do that and you show this then we can take points off here and say okay if we assume that we start from this string which is wrong but hey if we start there and the rest of it's correct then we get points for all that that make sense seems fair, cool so the only other slight difference here when I was doing it by hand it's a little harder with the room is I do like to keep track of what was the longest match that we've seen so far and you update that as you go but besides that these are the exact same columns right that we have used so far we're going to make it a little more clear here that we're deciding that this is the input we said idea four the dots return that and number return number okay so why is this important why is lexing important we've actually reached the end of lexing this is how you do it, this is it to find tokens use the lexer the lexer spits out tokens so why this is important I didn't know the mariner one actually don't know if it's a shuttle or a rocket it's an unmanned vessel so it wasn't maybe I have it on my notes, I want to check real quick click to add notes, no okay so on that example we just had we had the numbers, decimals whatever happened to whitespace is whitespace important in your project languages no? eliminate all the whitespace in your project one or project two c code and see what happens are you going to work the same? yes whitespace doesn't matter and see the pilot doesn't care I still think there are cases keywords followed by each other maybe although actually that's not true I'm guaranteeing you it's like the actual pilot eliminates all whitespace when it actually lexes yeah that's where it is function signatures avoid and function name how do you know which one is important could you have a function name that starts with i your processor by the way the pilot never sees the includes yeah interesting, okay so most languages if you eliminate all whitespace it would be a problem languages like python who programs in python some people whitespace is actually significant it's how you define indentations also I'll say if you don't use whitespace when doing indentations and braces you're a monster because you're going to have to read that code if you bring it to my office and just gobbledygook that's all one line if statements and ball statements that can be a sort of error because you're not indenting it's easier to read I don't think shuttle but unmanned space thing it exploded and then if you've written code that caused something to explode you have, what was it what was it you raised your hand no yeah physically explode not virtually explode cause a physical object would explode that's hardware stuff though have you done that in software though most of the times it doesn't this thing exploded, why well it's because of lexical analysis so in most languages whitespace is kind of significant but sometimes not so here's yes so whitespace is important in C because between type names the variable the type name you can define the type names in the variable that's only in in C you'd have to type that first yes anyways, okay these kind of things are important in Fortran all whitespace is ignored completely well maybe that's not going to be a deal C does mostly that what's the difference between these two lines I mean this is not like a deep question what's one difference between these two lines literally a one character difference have we all made one character differences before? did they ever explode a space shuttle? probably not so most of the time when we make a one character error either the compiler will stop us and tell us what we did wrong or it will cause some kind of error or the program will be mostly similar but something is slightly wrong in this case we have two completely different lines of code the first one sorry the second one sets a variable called do15i equals to 1.100 and the first one does a for loop for i from 1 to 100 do this thing so if you like changing a for loop to a variable assignment it's still compiled and ran and it will cause a space shuttle crack because of one problem neglect saying cause it to parse it as a variable assignment instead of a for loop from a typing problem? the type system doesn't even come to effect here because why did i get typed the integer type instead of a decimal type or whatever in that case oh sorry it's a decimal whatever do15i is I'm not sure how for carrying type systems work the main problem is really that they didn't want to create a variable they wanted to do a loop but instead initialize a variable something across


It is now time for oral questions. I recognize the Leader of the Majesty's Loyal Office. Speaker, the good morning. The Premier and the Housing Minister told the integrity commissioner that they only learned about the proposal to remove 15 giant swaths of land from the green belt shortly before the public did on November 4th, 2022. Remember that date, November 4th, 2022. Because new evidence revealed just this morning suggests that those in the Premier's inner circle were aware of it much earlier before August of that same year. Speaker, to the Premier, what was the exact date when he was made aware of this green belt proposal? Thank you very much, Madam Speaker. Listen, Madam Speaker, I think the Premier and the Minister of Municipal Affairs and Housing have been very clear on that. They have, of course, worked with the commissioner on this, Mr. Speaker. But having said that, it is clear to me, and I think it's clear to all of us on this side of the house anyway, that this is really more about the NDP's ideological opposition to building more homes for the people of the province of Ontario, whether it is for long-term care homes, which they yesterday talked against, whether it is for more housing in all different types of communities, whether it's purpose built rental housing. That is what this is really about for the opposition, Mr. Speaker, and as I have said on many occasions, whether it is as part of long-term care or as part of building homes and communities where people are desperate to have them, we will not be swayed. We will continue to remove obstacles that are in the way of people owning their first home, renting their first apartment so that our economy can continue to grow, Mr. Speaker. We will not be strayed from that mission on behalf of the people of the province of Ontario. The supplementary question? Speaker, I'd like it in the record that the Premier is sitting right here and did not answer that question, and I really did want to hear specifically from the Premier on this matter. I can say he's here. Speaker, timing matters, Speaker. Let me clarify this. Stop the clock. We can't make reference to the absence of another member. It's also true that the standing orders allow any minister to answer the question. So, lead to the opposition. Speaker, and I would like to go back to the Premier because he's sitting right here, and I would like him to answer this question because it is to him. The Speaker, the timing matters. Timing matters quite a lot. In 2018, this government swore up and down they wouldn't touch the green belt. But the evidence suggests that no later than August 2022, they were considering breaking that promise. And that matters because in September, one developer, Rice Commercial Group, purchased two parcels of land for $80 million. Parcels of land that could not be developed because they were fully in the green belt. Land that is now worth considerably more than it because it can be developed. The developer also happened to be a major donor to the Conservative Party. Speaker, to the Premier, did the Conservatives tip off one of their major donors that they were planning to carve up the green belt? Government House Leader. Thank you very much, the Speaker. Again, again, Speaker, I think the Premier and Minister of Municipal Affairs and Housing have been very clear on that and have continued to work with the Commissioner on that, Mr. Speaker. But the member opposite is correct. In 2018, we said very clearly that we were going to do our best to build more homes for the people of the province of Ontario. And it started in 2018. She's absolutely correct. We're transit-oriented communities. And we said that we were going to build housing around the transit that we were building across the province of Ontario, whether it was the subways in Toronto or the GO train expansion across the GTA. We were very clear that we were going to do that. Now, they voted against that, Mr. Speaker. We've also been very clear in this parliament that we were going to start to ensure that 1.5 million homes were built for the people of the province of Ontario. We are in a housing crisis. And for years, all the NDP and the Liberals put obstacles in the way of new construction coming online. We are going to remove those obstacles. We are going to build homes for the people of the province of Ontario so that the younger generation can enjoy all of the benefits that we did. When we went to the Parliamentary. Speaker Ontarians know that this isn't about building housing, not one unit. Ontarians deserve a government they can trust. One way this government could care. Side come door. This whole thing up is by releasing the unredacted records. Speaker, back to the Premier sitting right in front of me. If they have nothing to hide, when will they release the full records related to their green belt graph? I see nothing out of order for a member to make reference to the presence of another member. Government House sleep. Thank you very much, Mr. Speaker. Look, they can call it anything they want. But the people of the province of Ontario know very well the record of the NDP and the Liberals when it comes to building housing in the province of Ontario. Systematically, over 15 years, they put obstacles in the way that have brought us into the position where one of the largest jurisdictions land masses in the world, frankly, has a housing crisis. And we're going to remove those obstacles for the next generation of Ontarians who want the same dream that we all had the benefit of, Mr. Speaker. Since I've been in this house, they talk about ethics. The only person that I know of that has breached the ethics in this house was a member for Waterloo. That's the only person that I have in the time that I've been here, Mr. Speaker. We are going to double down for the people of the province of Ontario. So all of those people who are out there making offer after offer and can't have a home, we have your backs. We are going to build more homes, despite what they say, despite what they did, we will get it done. I'm going to caution all members of the House that personal attacks are out of order. And we have to ensure that our language is civil, so as to ensure that we can have a constructive debate this morning in question. Order. Start the clock. You're the opposition. Speaker, this government just loves a backroom deal. It's like they can't help themselves. We just learned of another one in Caledon. Last year, the then mayor secretly requested a ministerial zoning order from the housing minister so a developer could build a warehouse on prime farmland. The town council and local planning staff did not support this project. Local residents weren't even notified, much less consulted. But the then mayor ignored the wishes of his democratically elected council and asked the housing minister for an MZO which he was given. Speaker, to the Premier, does he think that those secret undemocratic dealings are acceptable? And will he revoke this MZO? Government has said it. So let me get this straight. A democratically elected mayor asked for an MZO so that he could bring jobs into his community. And now, not only are they against housing, they're against jobs for the people of the province of Ontario. They tie it up nicely in a bow, right? It highlights why Ontarians election after election after election after election have turned their backs on the NDP. Why in the last election they shrunk the caucus by over 10 members, Mr. Speaker? Are we going to continue to put MZOs in place for people who can bring jobs to the province of Ontario? You're darn right we are, Mr. Speaker. We're going to do that. Are we going to continue to bring MZOs in those communities that want to work with us to bring more housing, jobs, and opportunity? Yes. Will we go even further, Mr. Speaker, and bring MZOs in those communities that fight jobs and opportunity but that we know are good for the people of province of Ontario? You're darn right we will, Mr. Speaker, because we have a mandate to grow the economy, build jobs, and continue to make this the most prosperous province in Canada, and we'll get it done. Supplementary question? Speaker, this MZO was first requested by Rice Commercial Group. And just to remind everyone, that's the same developer who bought $80 million of protected greenbelt land just two months before the conservative government opened it up to be paved over. In January 2022, the developer passed Caledon for an MZO. By September, without the support of the town council, they had it. I'm going to give the Premier another chance to clear the air right now. And if he won't do it, maybe at least the minister will stand up. Speaker, to the Premier, were there any conversations that occurred between anyone in his government and the Rice Commercial Group before the mayor requested this MZO? Government House Leader. Thank you, Mr. Speaker. Again, as I said, the Premier and Minister of Municipal Affairs and Housing have worked with the commissioner as you would expect, Speaker. But now we've got the full tranvert complete, right? So they're against jobs, they're against housing, and now they're against the hospital being built in New York, the New South Lake Hospital. Yesterday, they were against long-term care homes being built in Pickering, Mr. Speaker. So this is the mandate of the NDP. Oppose everything, oppose growth, oppose jobs, oppose the people of the province of Ontario. Don't build rental housing. Ensure that the next generation of this province has only to rely on the government. That is the strategy of the NDP. That's when they're happiest, right? When people rely on government. That's when they're happiest. Well, what we want to do is to give people the opportunity to succeed, Mr. Speaker, because when we do that, this province and this country prosper, and that is what has grown this province for generations, it is why millions upon millions of people come here. They don't want to hand out. They want the opportunity to succeed, and we'll give them that. Final supplementary. Speaker, you know what we will oppose? We will oppose every time this government gives out favours to wealthy insiders and donors to the Conservative Party, legislation that is going to bring some integrity and transparency and accountability back to government. A bill that's going to help prevent this government from continuing to put their insider friends first. It goes to a vote in less than an hour. Speaker, to the Premier, will his government support my legislation for stronger, much stronger integrity rules? To reply, government notes later. As I said, in the five years that I have been here, the only person who has breached the integrity rules was a member for Waterloo. Now, that hasn't stopped the NDP making all kinds of spur-less allegations against members of the Conservative Party, but not once has a member of the Conservative Party been found to be in breach. So what did the NDP do? They want to change the rules, right? We don't need to change the rules because we have good rules in the province of Ontario. It is not our problem that the NDP get caught up in breaching those rules. What we're going to focus on, and again, while they try and stray and move all over the place, yesterday I was reminded that they voted against mining. They voted against new subways in Toronto. They voted against housing. They voted against purpose-built rentals. They voted against long-term care. Now we hear that the leader of the opposition does not want new hospitals built in the province of Ontario. What they want is a province and a generation of Ontarians whose only source is the government. They want people to rely on the government. We want people to succeed. We'll give them the resources and the tools they need to succeed, like we have done for generations where progressive conservatives have been in charge. Thank you. Member for Scarborough, Southwest. Speaker, my question is to the Premier. People in Scarborough are once again feeling abandoned as the SRT is being decommissioned without an etiquette replacement. The original plan was that the Scarborough RT routes would be converted to a dedicated off-street busway during the seven-year closure of the line. That this would save riders 10 minutes compared to on-street service. However, this month it was reported that buses would continue to operate on street, and even though Council has voted to convert the busway, they lack the funding to do so. So, Speaker, why is the government refusing to help the long-suffering residents of Scarborough? Hear, hear. Mr. Transportation. Mr. Speaker, I thank the member opposite for the question, and I think she knows very well that our government has been the first government to be there for the residents of Scarborough when it comes to transit. For the leadership of this Premier, put forward a plan for a three-stop subway extension in Scarborough for the first time. And, Mr. Speaker, we did that not just on our own. We did it with City of Toronto's support. City Council supported it. Unfortunately for the residents of Scarborough, Mr. Speaker, that member opposite and the entire NDP caucus voted against our plan for the residents of Scarborough. We have been there for the residents of Scarborough with respect to transit, with respect to health care, and with respect to housing. These are infrastructure, this is an infrastructure deficit, but we inherited from the Liberals, Mr. Speaker, that we are addressing, but the member's opposite continually vote against. Stop the metric question. Mr. Speaker, the people of Scarborough have no idea when that Scarborough subway will be built, and especially after the chaos with the Metrolinx and the 12-year delay of the Eglinton LRT, this government should not be talking about building subways or anything. Order. That's embarrassing. Order. That reputation for Metrolinx is embarrassing. Scarborough transit users already have some of the longest commute times in the city because this government has failed to provide the needed operating funding for the TTC. And on top of that, with recent service cuts, Mr. Speaker, regardless of what this government will say, with recent service cuts, guess which routes are most affected in Scarborough with increasing commute times once again for commuters. Now, this government is refusing to fund the $2.9 million investment necessary to ensure residents in Scarborough get the dedicated bus line and SRT replacement while they're waiting for that subway. So my question again to the speakers, to the Premier Speaker, will this government commit to funding an adequate replacement service for the people of Scarborough? Members of the TTC, please take your seats and to reply, the Premier. Through you, Mr. Speaker, I called Scarborough the Forgotten City until this party, the PC Party, came into office. They were no longer forgotten. They were ignored under the previous two governments, NDP and Liberal, when it came to the hospital, zero funding. They were ignored when it came to the medical school, zero funding, and when it came to the Scarborough subway, not one single member of the NDP, not one single member from the Liberals that had all their members in Scarborough even tried to attempt to do the Scarborough subway. Mr. Speaker, they voted against the hospital, they voted against the medical school, they voted against the subway, and the nerve to stand up here, we're tunneling a Scarborough subway, but not only that, we're gonna continue expanding the Scarborough subway right across Scarborough to make sure the 630,000 people finally have a voice after decades of being involved. Shit. Order. Start the clock. The next question, the member for Chatham Kent Leamington. Thank you, Speaker. My question is to the Minister of Finance. Our province, much like the rest of the world, is in a time of great economic uncertainty. Ongoing supply chain disruptions, inflation, and increased interest rates have created pressures for people all across Ontario. Individuals and families are looking to our government for leadership and help during these challenging times to provide support so that life can be more affordable. They need to see that our government is continuing to focus on initiatives and investments that will provide financial relief. Speaker, can the Minister please explain how our government is continuing to work on behalf of all Ontarians during these challenging economic times? That's a good question. The member for assisted, member for Oakville. Thank you, Speaker, and thank you to the great member from Chatham Leamington Kent for that great question. Thank you. Speaker, our government has a responsible plan to ensure that our province remains on a strong and steady economic path forward. Our economic plan to build Ontario is grounded in our commitment to support families, empowering our workers, and strengthening our business partners. We have laid a strong fiscal foundation on which our government will continue to build Ontario with a plan for recovery. We eliminated license plate renewal fees as well as license plate stickers and refunded the past two years of fees for eligible vehicles. We extended the current gas tax and fuel tax cuts until December 31st, 2023. That puts real money back into the pockets of Ontarians. This is what the government and the people of Ontario expect and reserve from their government. Thank you. Supplementary question. Thank you, Speaker, and thank you to our amazing parliamentary assistant to the Minister of Finance for that response. It's very reassuring to hear that our government is consistently introducing measures that will put money back in our pockets. That said, the people of our province expect that their government will continue to look for further ways to reduce costs and make life easier. Unlike the previous Liberal government that was out of touch with the people of Ontario, our government maintains and remains committed to focusing on issues that will help individuals and families in their everyday lives. Speaker, can the parliamentary assistant please explain how our government is making life more affordable for all Ontarians? Thank you. Thank you again, Speaker, and thank you again to the member for that question. We are making transit more affordable by eliminating double fares for most local transit services in the greater Toronto area. For commuters and also those that use go transit services. Our government is also working to expand this initiative to support more people commuting into Toronto. For low-income seniors in Ontario, these uncertain times are even more challenging. That is why we temporarily doubled the guaranteed annual income system payments for eligible seniors until December 2023. This ensures more seniors who need financial help will get it. It will be introducing legislation to expand the GAINS program starting in July 2024 to see about 100,000 additional seniors to be eligible for the program for a 50% increase in recipients. We are also proposing to adjust the spend it fit and you want so that it will increase with inflation. Our government continues to support the people of Ontario. Great answer. Next question, from the Niagara Centre. Thank you, Speaker. Through you to the Premier, Ontario municipalities say they are facing financial disaster due to revenue losses caused by Bill 23. A recent Peele Region report said Bill 23 will cost the region $2 to $6 billion in lost revenues. To replace those lost revenues, Peele will need to raise property taxes by at least 25% and more than double the utility rate. And Brampton says it will need to raise property taxes by 80% because of Bill 23. Last year, the minister promised to make municipalities cool for these revenue losses. So why doesn't his budget include a single penny to do so? Mr. Mr. Farrison-Howeson. You know, Speaker, the member opposite was on local council. So was I, so was many of the individuals in this chamber. I never blamed anybody for my budgets. I sat at the budget table. I made decisions that were based in the best interest of my constituents and elected officials. I did the same thing when I was a CAO. Municipalities control their own destiny in terms of what they decide, the service levels, the taxation levels for them. We work with municipalities. We've indicated that we want to better understand the impacts of more homes built faster. That's why we announced recently the appointment of auditors that will work with a select group of municipalities and what we find will inform us on our decision moving forward. But to sit there and try to draw a line from this government to a decision made in a local council, the member knows better than that. Supplementary question. Speaker, there is no money in the budget to make municipalities cool as this minister promised. Not only that, according to expenditure estimates, this government's actually cutting the Streamline Development Approval Fund by 25% and cutting the municipal modernization program by 70% compared to last year's estimates. These programs fund initiatives to speed up housing development approvals and fund audits. If the minister is really holding off on compensating municipalities for Bill 23 because he wants to perform audits first and make sure municipalities are speeding up approvals, why is he cutting the very programs that fund these initiatives? Mr. President, take your seat. Premier. Well, thank you, Mr. Speaker. You know, I heard this whole song and dance before. Have I ever seen a municipality, have I ever seen a politician outside of ours that doesn't love spending money? You guys love spending money. The municipalities love spending money. Mr. Speaker, when I went down to City Hall, I heard the same song and dance. First meeting with the CAO, we got to raise taxes 30%. Well, guess what? We found a billion dollars, a 0% tax increase, never went once to the province, hat in hand. We're there to help the municipalities, but isn't it amazing that they forget about all the new income and revenues up to the city coffers when they start building homes? The tax revenues, they forget about that. We don't have an income problem at the City Halls across the province. We have a spending problem. That's the issue. A member for Peterborough Corridor. Thank you, Mr. Speaker. I think it's time for some good news today. So I'm going to ask the Minister of Environment, Conservation and Parks as summer approaches, many Ontarians are looking forward to enjoying the natural surrounding facilities and trails at Ontario's parks. Our parks system has been referred to as the hidden gem of Canada, but it's no secret that they're becoming widely known and very popular, with attendance numbers showing that there is a greater demand for our provincial parks. It's important that our government continues to invest in upgrades and amenities that individuals and families can enjoy. Speaker, can the Minister please explain what our government is doing to make Ontario parks experience even better than it has been in the past? That's a good question. Minister of the Environment, Conservation and Parks. Mr. Speaker, I appreciate the question from the member opposite. I too am a Pete's fan, so on to another subject. We'll talk about Ontario Park, Speaker. He's completely right. Ontario parks are no longer the hidden gem of Canada. Every year we know more and more people are visiting Ontario's beautiful provincial parks in every corner of this province. There is an Ontario park just ready to be explored and I'm proud that under this Premier's leadership, we're expanding recreational opportunities for Ontarians. Alfred Bogg, new non-operating provincial park in the National Capital Region. Mississaugie Provincial Park, a tripartate agreement with Serpent River and Mississauga First Nation and the city of Elliott Lake. Or, Speaker, the brand new Urban Provincial Park that we just announced and tend to create, Speaker, in Uxbridge. Wherever you look, there is a beautiful provincial park in Ontario. That's why our government's made a historic commitment. This, in the next two years, is over $42 million to support the beautiful infrastructure at Ontario Provincial Park so families can make memories. Thank you. The supplementary question. Thank you, Mr. Speaker. And that was such good news that not a single member of the NDP heckled. My constituents appreciate the importance of our park system, having the privilege of living near the Quartha Highlands Provincial Park and the Petroglyphs Provincial Park, where there are so many opportunities to experience the outdoors. Ontario's provincial parks operate in many regions across our province. While they vary in size and location, our park system is vitally important to the tourism sector, as well as preserving ecosystems and contributing to the overall well-being of Ontarians. For this reason, our government must continue to make investments into infrastructure and programming that will help to drive even more visitors to Ontario parks. Speaker, can the minister please explain what our government is doing to expand and build upon the provincial park system? Good question. Mr. Speaker, conservation parks. Thank you, Speaker. I think that member spoke a little too soon. I might get a little cheeky in my response, so I'm sure I will get heckled. Speaker, this Premier made a historic commitment to expand capital, to announce not one, but two new provincial parks, Speaker, and we announced just recently by our incredible member, Pierre Jakobuski, over 3.3 million in vital infrastructure upgrades to Algonquin Provincial Park. Speaker, so Speaker, when we make these historic investments in the budget for new provincial parks, it's regrettable, Speaker, that the NDP and members opposite voted no. They voted no to more expanded recreational opportunities for Ontarians. Speaker, it's just shocking. You know, I'm not surprised they voted no to public transit. They voted no to tax cut on low-income families. They voted no to record infrastructure spending in rural communities. But in this side of the House, Speaker, we're going to grow Ontario for all income brackets, for all Ontarians, regardless of your background, while also expanding, thank you very much. The next question, the member for London North Centre. Thank you, Speaker. Good morning. My question is to the Premier. My constituent Bill is an 87-year-old who reached out to my office in March with failing vision. He urgently needed cataract surgery. But Bill was told he'd have to wait 19 months for his surgery in a public clinic. Over a year and a half wait. Order. The gender-funded public system forced Bill... Order. ...into a private clinic. To the Premier, what is normal about this government making seniors go to private clinics for their vital health care? Deputy Premier and Minister of Health to reply. Oh, Speaker. Yes. You do understand that community clinics, including cataract clinics, that we have expanded in the first of this year in Windsor, Kitchener, Waterloo and in Ottawa, are now today performing more cataract surgeries so that your constituent, my constituent, the people of Ontario who have been languishing on wait lists do not have to have that experience. That's a question. That when you go into a community surgical centre, you are paying with anything, but your OHIP card is categorically false. And I think the member opposite should be spending more time explaining to Bill how Bill 60 is actually going to improve that access and continue to decrease wait times in the province of Ontario. Which, by the way, in Canada, we actually lead. Oh, wow. Thank you, Speaker. Back to the Premier. Clearly, the minister understands that people in Ontario are being fleeced because of this government and their for-profit health care privatisation. But Bill couldn't wait. He's a lifeline for his partner because he drives. In Conservative Ontario, an 87-year-old senior was burdened with $4,510 to pay. It is unconscionable and it's on this government. I highly doubt this government has any clue what the private clinic is pulling from the public purse on top of this ridiculous amount. You know, this clinic, they actually nickel-indimed Bill for COVID-19 adding a $10 charge on his invoice. Again to the Premier. What is normal about an 87-year-old getting gouged for their essential health care?  You know, by expanding our community's surgical access through Bill 60, we are actually ensuring that people get those shortened wait times to make sure that they can be back with their family, back in their jobs, back with community. And Bill 60 has some additional parameters that will ensure people know exactly what the OHIP-covered funded services are in that clinic. But more importantly, what we are doing is ensuring we are expanding access so that individuals do not have to travel as far, get access faster. What part of that process is the member opposite concerned about? Because what I see is a win where people get shorter wait times back in community, faster service. Thank you, Speaker. Question, the Member for Beaches, East York. Thank you, Mr. Speaker. My question is for the Minister of Municipal Affairs and Housing. This week we've had committee hearings on Bill 97 and heard from many stakeholders about what Bill 97 will mean for their municipality, their profession and their neighbourhood. It seems that once again, the government is insisting on hoarding power and removing meaningful consultation while promoting sprawl. Bill 97 allows land subject to MZOs to not comply with local official plans, provincial policy statements and provincial plans. Collectively, these plans are intended to serve the public interest and include policies on life safety, accessibility and flood hazards. As drafted for land subject to MZOs, these policy documents may not apply to downstream approvals for permits, licenses and other approvals. This is dangerous, Mr. Speaker. Will the government confirm that policies related to life safety, flood hazards and accessibility remain applicable to land subject to an MZO? Minister of Municipal Affairs and Housing. Well, Speaker, through to the Honourable Member, it was quite a day yesterday in committee. I have to say, and some of her questions were, I wasn't sure where she was going, but the government house leader has been pretty clear this morning about where we're going, right? We're going to continue to use those planning tools, minister zoning orders, community infrastructure and housing accelerators to get priority projects done. We've got more active cranes in Toronto right now than most of American cities put together, right? Gave you the list the other day. Chicago, Washington, D.C., San Francisco, Seattle come by, right? So again, let the Honourable Member know what she's actually voting against when she votes against the use of MZOs. 4,420 long-term care beds, a big step forward in our government's mandate to provide 30,000. Under her government's watch, 600 beds. We're going to continue to use these tools to move forward for change. Thank you. Thank you very much. The supplementary question. And once again, thank you. I'm always grateful for your non-answers. And in committee, I was just simply asking whether you respected planners and conservation authorities, but those are pretty clear questions that weren't answered. Mr. Speaker, Bill 97 contains a new planning definition of areas of employment that excludes institutional buildings, standalone retail and offices. Employment lands that currently have these planning act protections will lose them from their removal of conversion to permit residential uses. Under Bill 97, residential uses will always outbid job-creating uses such as offices, retail, and other commercial uses. In Toronto, this could impact up to 25% of all employment lands. Question. Will the government consider allowing service uses that workers need close to their placement appointments that are not captured in this new definition because we know that the distance from place of work to residence is the most critical factor for a better quality of life? And my members to make the comments through the chair, the Minister of Business Affairs and Housing. Mr. Speaker, you know, all over the place in terms of what she's putting on the record, the facts are clear. We're supporting the building of long-term care homes through some of our planning tools. We're supporting 117,000 housing units, 650 supportive housing units, 152,000 new jobs because of the Minister's zoning orders that we're using. I was in your city last night with the Toronto Rotary Club and Homes for Heroes for the first time Rotary Club and Homes for Heroes Foundation, who we partnered with in Kingston. And the Executive Director of the Foundation was pretty clear to Rotarians in this city that RM Zeddo and Kingston saved him a half a million dollars and got shovels in the ground faster to help 20 homeless that didn't have a place to call home. Under the Liberals, they're going to continue to vote against all of our measures that create housing, create jobs. Once again, I'll remind members to make their comments through the Chair. The next question, member for Chatham Kent Leamington. Thank you, Speaker. My question is for the Minister of Natural Resources and Forestry. Aquatic invasive species can have a devastating impact on Ontario's lakes, rivers and fisheries. We must protect Ontario's biodiversity and maintain our ability for recreational activities in the water like fishing, swimming and boating. Unfortunately, when watercraft move between lakes and rivers, they can spread invasive species. Without taking proper steps, these invasive species can introduce and spread disease into our waterways, costing us millions to repair the damage. It's vital our government takes the necessary action to help stop the spread of invasive species and protect our environment. Speaker, can the Minister please explain how our government is protecting Ontario's waterways? Thank you. To apply, the Minister of Natural Resources and Forestry. Thank you, Speaker. And thank you to the member for Chatham Kent Leamington. The member is so nice. He gets to ask questions twice today. Speaker, Ontario is one of the most biodiverse provinces in Canada. And that rich biodiversity includes more than 30,000 species, over a million hectares of forest and more than 250,000 lakes representing over one-fifth of the world's fresh water. And last week, I joined the Invasive Species Centre in Port City, my hometown, to learn about their boat cleaning unit used to protect our lakes and rivers. Speaker, don't tell my mother I was in town. I didn't get by for a visit. Speaker, the unit is equipped with a series of tools designed to help boaters quickly and easily clean their boat of any invasive plants or small invasives like zebra or quagga mussels. And at the start of the boating season, we're encouraging boaters to do three simple things. Clean, drain, and dry their boat to prevent invasive species from traveling from one lake to another. Speaker, working together, we're protecting our natural resources, mitigating damage to our economy and keeping Ontario's natural resources safe for future generations. A supplementary question. Thank you, Speaker. It's so important to know that our government is actually taking action to protect Ontario's natural resources. In my beautiful community of Chatham-Kent, Leamington, we're literally surrounded by the Great Lakes. And we also enjoy fishing one of our most important recreational summer activities. We know that even bait for fishing can pose significant risks and lead to the spread of invasive species and fish diseases. For this reason, it's critical that our government partners with agencies like the Invasive Species Centre to address major areas of concern. Our government must do all we can do to help reduce the harm caused by invasive species to Ontario's environment and our economy. Speaker, can the minister please explain how the ministry works with the Invasive Species Centre and other organizations to protect Ontario's natural resources and our precious environment? Mr. Natural Resources, of course. Thank you, Speaker. I want to again thank the member opposite across the way for the thoughtful question. You know, we were collaborating with organizations and experts dedicated to protecting our province from harmful invaders. That's why Ontario is investing an additional $1 million this year with the Invasive Species Centre and the Nature Conservancy of Canada to help combat the threat of invasive species. $1 million. Half that funding will support the implementation of a comprehensive plan to fight frag mites in Ontario. And that plan, developed by the Green Shovels Collaborative, will enable stakeholder and partner engagement, multi-year work planning and site assessment, as well as Indigenous and public engagement in preparation for the broader management of frag mites in the province. The rest of the funding will be used to support projects led by community partners that will respond and reduce the current harm caused by invasive species. Response? Our long-term partnership with ISCs has been central to the ministry's efforts to prevent and reduce the harm caused by invasives in Ontario, infecting our environment and impacting our economy. Given this matter serious consideration and even though the standing order is a silent on this matter, I would strongly advise the Minister of Natural Resources next time he's home to visit his mother. Premier, the homelessness crisis is escalating across Ontario, with municipalities now declaring a state of emergency on homelessness. Niagara, Hamilton, and with over 10,000 people who are unhoused right now in Toronto, City Council is poised to declare a state of emergency of homelessness this week. Cities across the province are in crisis and the Ford Conservative government is abandoning them. Will this government enact a homelessness strategy and work with municipalities to improve the lives of unhoused people in Ontario? Mr. Municipal Affairs and Housing. You know, it's hard to comprehend the new Democrats in some of the questions. We've over the last two weeks had municipal councils from all across the province celebrate our homelessness prevention program. And the fact that our government recognises recognises the fact that we are adding an additional $202 million to make our commitment almost $700 million. The fact that under the leadership of Premier Ford, we negotiated a historic agreement with the federal government during the pandemic and provided $4 billion to our municipal partners for a variety of measures, but most importantly, the $1.2 billion we provided them under the Social Services Relief Fund. Literally our municipal partners saved lives in the middle of the pandemic because of their quick action with the dollars that we provided them. Do we have additional work to do with municipalities? Absolutely. You know, all of our service managers now have a by-name list in effect and we want to continue to work with them so that we can move people. Thank you, Speaker. While the housing crisis worsens every single day in every single city across the province, my constituent is staying in a shelter. His name is Fred. He's facing transphobic violence. He's living with bed bugs. Fred desperately wants out of the shelter. He wants to find affordable and safe housing. He wants work and he wants to complete his master's degree. But the stress of shelter life is really eroding his mental health. When will the Premier finally answer the call from cities begging for help and produce a real plan to build real affordable housing for constituents like Fred? The Associate Minister of Housing. Well, thank you, Speaker. I do want to thank the member opposite for her question, Speaker. It is this Premier and it's this Government that recognise the desperate need for more housing supply. The previous Liberals, supported by the NDP, never ever made housing a priority. On the contrary, they were closing schools. They fired nurses. They let our hospitals crumble. Well, no more. It's this PC Government that will get housing bill for everyone. Our plan is working, Speaker. Record purpose bill rentals in the past two years. Record housing starts. Record funding for homelessness prevention programme. The highest amount going to the City of Toronto. Protection for all tenants and landlords. Providing those wraparound services for those in supportive housing. And doubling the adjudicators on the landlord tenant board. All while reducing red tape to get more housing built. It's this Premier, this Government that will get it done for everyone in Ontario. The next question, the member for Brantford Grants. Thank you, Speaker. My question is for the great Minister of Agriculture, Food and Rural Affairs. We should all be proud of the robust agri-food sector that Ontario has worked so hard to create. And because of the hard work and dedication of so many farmers, the production of chickens, turkeys and eggs contributes over $1.8 billion to our province's economy. Ontario's poultry industry is integral to our agri-food sector and provides food products to our province's growing population. However, in order to remain prosperous and competitive, it is vital that our Government continues to prioritise investments into industries that are part of our province's agri-food and rural sectors. Speaker, can the Minister please explain how our Government is continuing to support the expansion of Ontario's poultry sector? Thank you. Thank you very much, Mr. Speaker. And I appreciate the question from the member from Brantford Brant. Because it's very important to recognise the amazing work that our featherboards are doing on behalf of Ontarians and Canadians and people around the world. You know, when you take a look at what Ontario chicken, Ontario egg, Ontario turkey, and Ontario borrower hatching egg and chicken commission are doing collectively, they're growing the demand for good, safe, quality chicken around this world. And I'm so very pleased to stand with them to further research that will enable them to continue to increase production, to satisfy the demand, not only in Canada, but around the world. And we're partnering with the Agricultural Research Institute of Ontario, the four poultry organisations, as well as the University of Guelph, to create and stand up and build a state-of-the-art research facility near Allora that will prove to set best practices around the world. Thank you. Very good. Thank you. Supplementary question? Thank you, Speaker. Speaker, this is great news for Ontario's poultry sector and for farmers and communities across Ontario. Investments made by our government into infrastructure and programs that will improve practices in the poultry sector are vital to increasing food production and expanding business operations. Ontario has a long history as a leader in agriculture and food production, and we must continue to support this growth. The people of Ontario expect that our government will advocate for farmers and for food producers. This work is essential for the health and well-being of all residents and for growing a stronger Ontario. Speaker, can the minister please explain how investments by our government will support agri-food businesses across Ontario? Thank you. Thank you. And this investment absolutely demonstrates our commitment to our grow Ontario strategy. We have three pillars in that strategy, whereby we're looking to enhance a secure and stable supply chain. We're looking to invest, continue to invest in research and innovation all the while attract the best talent. And when we're investing in research, Speaker, we're going to be attracting interest and talent from around this world. And that research centre near Allora that the poultry industry will be building on behalf of so many will look to drive new advancements in animal health, nutrition, best practices when it comes to biosecurity and housing and also address consumer-oriented research. Speaker, this is going to be a state-of-the-art facility that people around the world will look to because again, Ontario is leading by example and we're growing confidence and enabling our farmers to be the very best in the world as well. Thank you. The next question, the number for Waterloo. I thank you very much, Mr. Speaker. My question is for the Premier. A year and a half ago, this government decided that it would no longer be sending mailed reminders to Ontarians when their driver's licence health card or licence plate was in need of renewal. The communication on this initiative has been abysmal. This out-of-touch decision means that many Ontarians with busy lives to lead are only discovering these important documents are expired when they arrive at an emergency room or have already been pulled over by the police facing $110 fine. Why is it that this government can't maintain a simple service we've had for decades or at the very least have a strategy to transition into a new program which makes the lives of Ontarians better? This is for public and business service delivery. Thank you very much, Mr. Speaker. And thank you to the member for the question. Speaker, first of all, I would really like to thank and take the time to thank the staff at the amazing service Ontario for the incredible work they do each and every day. And Speaker, as I've said this many, many times in the house that we are modernizing our system. And thank you to the Minister of Transportation for her great support that we are now offering renewal reminders online as well to individuals can go to serviceontario.ca slash serviceontario or ontario.ca slash renewals as we continue to modernize our system and make sure that everyone is able to get their renewals done on time. Thank you. Supplementary question. Thank you. The service Ontario staff are so frustrated right now because they weren't consulted and the renewal program is not working. Mr. Speaker, this government likes to talk about how it's saving Ontarians money, but this is an example of how they're costing good Ontarians money. A ticket for an expired license plate is $110. One person said they may be eliminating one fee, but they're certainly making up that difference in fines. In February of this year, the police in Waterloo Region, for instance, issued 47 tickets for expired license plates in a six-hour period. And a parent who needs health care for their child is asked to pay $75 if their health care has expired. These aren't bad people. These are hard-working Ontarians. They're people who need a reminder. Why is this government choosing to penalize them? Thank you very much, Speaker, and thank you to the member opposite for the question. I would also suggest, member opposite, that if once in a while, when they're sending out their notices or their information to their constituents, they can also remind them that there are renewal options available as well, too. Just try one time and you will see. You will get a better experience as well, too. But, Speaker, we have heard from Ontarians that they want more options when accessing government services, and that is why the changes we have implemented are just the beginning of government services and our commitment to building the service Ontario of the future. And honestly, to make life easy for the people of this province, that's what we are doing as a government. I know you don't like to do that as an opposition. You want to make their life more difficult. But this, as a government, we continue to make their life easy and we will continue to do it. So, you know what? And at the end of the day, the people of this province always enjoy it. Thank you. Well, my members, make the comments for the chair. And for Brent for Brent. Thank you, Speaker. My question is for the minister of minds. Speaker, we hear plenty of talk from the official opposition about how important critical minerals are for the future of our economy. We hear them talk about how important the mining sector is for the constituents that they represent. Yet, time and time again, the NDP vote against our government's investments, our programs, and our legislation that will help this vital sector grow and thrive. There is tremendous potential in northern and indigenous communities to create jobs. And to promote economic prosperity for their regions and indeed for the entire province, unlike the opposition and the previous Liberal government. Our government cannot let this once in a lifetime and once in a generation opportunities slip away. Speaker, can the minister please explain how our government is taking action to advance Ontario's mining sector? Thank you. Minister of Mines. I want to thank the member from Brent for Brent. Thank you for the question. Speaker, the people of Ontario, including the great writing of Timmins, voted in a historic PC majority because they wanted action. They know we have a generational opportunity to build a supply chain from mineral mining critical minerals in the north to the manufacturing electrical vehicles in the south. But we can't take 15 years to build a mine. If we're going to get it done, Speaker, the NDP and the Liberals think it's acceptable to take 15 years to build a mine. But I'll tell you who won't accept these timelines. It's not acceptable for our government, for mining communities, companies, and it's not acceptable for the people living in northern NDP writings who rely on the sector to put boats on their tables. The members opposite had a chance to support their constituents by voting in favour of the Billy Moore Mines Act, Speaker, but they chose to vote no. Thank you. The supplementary question. Thank you, Speaker. It is encouraging news that our government is implementing measures that will strengthen Ontario's communities and our economy. Unfortunately, and I think it's obvious to everyone in here today that the NDP don't care about what's important to the people of their writings. The NDP are still the party of no. No to jobs. No to economic investments for rural, remote and northern communities. No to electric vehicle production and supporting our manufacturing sector. And no to creating a stronger economic future for all on terms. The important work by our government in launching the critical mineral strategy is because we believe in making investments to support the made in Ontario supply chain for electric vehicles. Speaker, can the minister please expand on what actions our government is taking to secure the critical minerals that are needed to produce electric vehicles. Thank you. Minister of mine. Thank you again for the question. Speaker, the Building Moore Mines Act is all about keeping pace with business so we can build a supply chain that connects critical minerals in the north with manufacturing in the south. The EV revolution has already begun. And this bill will ensure Ontario continues to lead the charge. But the opposition still voted no. I'm not surprised because they also voted no to our critical mineral strategy investments including $35 million for exploration to find the mines in the future and $5 million to solve the supply chain challenges through innovation. Speaker, the people of Ontario, especially in the north, will always be supported by this government. Despite the party of no. Speaker, our government under the leadership of this premier will secure the critical minerals we need to realize this opportunity of a lifetime. Fantastic. Next question, the member for Toronto, Dan Ford. Thank you, Speaker. Speaker, my question is a premier. The premier has planned to move the Ontario Science Centre to Ontario Place and cut its size by 50% has caused concern across Ontario. The Science Centre has a 20,000 square foot workshop building world-class exhibits that are shipped around the world Kuwait, Thailand, China, and here in Ontario, Science North. This premier is cutting the centre in half and it's a pretty safe bet that the exhibit building facilities won't be part of the new package. Why is the premier putting at risk a critical piece of museum infrastructure, the Science Centre workshops that are a point of pride for people in this province? Thank you, Minister of Tourism, culture and sport. Mr. Speaker, and thank you for the question because I get excited when we start talking about the Ontario Science Centre and what it means. It has been a beacon for not only Ontario but across Canada for the tourism industry for a lot of years for over half a century actually. And when you talk about space you got to talk about workable space so we won't get to that because you were speculating, Mr. Speaker. But what it is, what we will talk about is what the Science Centre, the Ontario Science Centre, represents to Ontario and the rest of the country and the upcoming move to a world-class situation down in Ontario Place. So when we talk about that move, that beacon that I spoke of is going to get even brighter for tourism. Now tourism supports almost 400,000 jobs, Mr. Speaker. And when we talk about what's going to go on Ontario Place that raises the bar for everybody. So I get really concerned and almost take it not quite personally when we talk about not developing tourism in this province because it drives industry, it drives the GTP and it's important and it lands in every writing that we represent. Everyone. So let's not keep saying no. Thank you. That's a good question. Boy, if any answer says to me that that workshop, that world-class workshop is in trouble that is the answer that gives that response. Speaker, the Science Centre is not just a source of pride for educators, academics and parents but it's also a place where skilled Ontario workers, carpenters, electricians, electronics designers provide science exhibits to science centres around this whole world. If the government destroys the ability to create new exhibits then you can't regularly upgrade and revitalize the centre with new exhibits as time goes by. Is it the plan of the government to move the centre, let it deteriorate and then wipe it out completely at another date? Mr. Tourism Culture and Sport. Well, Mr. Speaker, it's a time of long-term plans here we're talking about not allowing something to happen we're talking about speculation, all sorts of things. Mr. Speaker, when we talk about the Science Centre it stands right now that is, by the way, still opening and doing a great business the people there are doing a fantastic job whether they're building exhibits or they're opening the doors for spectators so let's make that clear. The other side of it is usable space, Mr. Speaker having opportunities for more exhibits better placed exhibits the next generation of exhibits and building them on site just because something gets a little bit smaller doesn't mean we're taking away usable space to either display or build. Don't make those assumptions, Mr. Speaker that's the wrong road to go down. Mr. Speaker, my question is for the Associate Minister of Mental Health and Addictions. Speaker, we all know that across Ontario many people are affected by mental health issues or addiction challenges and this can have a serious impact on their quality of life and that of their families and everyone around them. We know that Indigenous communities have been disproportionately impacted by mental health and addiction challenges and sadly many of these individuals face barriers in accessing safe and effective care. For Indigenous peoples mental health and addictions care must respect their unique needs of their communities and honour their culture and traditions. So, Speaker, can the Associate Minister please explain how our government is expanding access to critical mental health and addiction services into Indigenous communities? To apply the Associate Minister of Mental Health and Addictions. Thank you, Mr. Speaker and thank you to the fantastic member of Hastings, Lennox and Addington for the important question. He's right, Mr. Speaker. For many Indigenous communities across the province the consequences of addiction and mental illness are far too real. Last week I had the privilege to spend time in Middlesex County to meet with the Chiefs of the Chippewas of the Thames, Juanitas of the Thames and Monty Delaware First Nations to talk about investments we're making to improve mental health and addiction services for Indigenous communities across the province. And I announced that recently our government has provided $33 million in additional investments for important capital projects as well as for culturally safe and appropriate services in Indigenous communities. Investments, for instance, like the $1 million going to my host last week, the Chippewa of the Thames to build a mental health and addiction crisis management center. This is how we're going to plug Indigenous communities into the recovery-oriented continuum of care that our government is building to ensure everyone gets the supports they need, where and when they need them. Point of order. Point of order. Point of order. Point of order. Point of order. Point of development. Job creation trade. I would like to wish my mother happy 90th birthday. I recognize the government host leader understanding order 59. Thank you, Mr. Speaker. Let me just thank all members for another very productive week on behalf of the people of province. On Monday, May 15th, we will have after the routine, we'll have a ministerial statement on police week. And in the afternoon, it will commence third reading of Bill 85, which is the budget bill. In the morning, on Tuesday, May 16, third reading of Bill 85. In the afternoon, we will continue with Bill 85 and in the evening, private members motion number 51, standing in the name of the member for Oakville. On Wednesday, May 17th, we will continue with Bill 85. In the morning, we will continue with Bill 85 in the afternoon. And in the evening, we will have Bill number, private members Bill number 101. On Thursday, May 18th, we will continue again on the budget Bill 85. In the afternoon routine, a ministerial statement on Ministry of Francophone Affairs annual report. And in the afternoon of that day, we will deal with private bills. Thank you, Speaker. Thank you very much. We now have a deferred vote on the motion for second reading of Bill 100. An act to amend the members integrity act 1994, with respect to fees, gifts and personal benefits. Call in the members. This will be a five minute bell.