Welcome to part 4 of the lecture on machine independent optimizations. Today we will continue our discussion on data flow analysis, its theoretical foundations and then move on to control flow analysis. So, in the last part we began our discussion on the theoretical foundations of data flow analysis and I mentioned that there are some basic questions that we can answer using the framework. So, for example, when will I know the iterative DFA algorithm be correct, how precise is the solution, will the algorithm converge at all and what exactly is the meaning of a solution, these are the questions we seek to answer using the framework. So, and a framework consists of a direction of data flow either forward or backward, a domain of values which is actually a semi lattice, a meet operator. So, we and the meet operator form a semi lattice and a family of transfer functions. So, there is going to be one transfer function for each statement of the basic block and rather the whole program, we compose the functions of each of the statements in a basic block and form a transfer function for the whole basic block. So, we also have these constant or identity transfer functions for the entry and exit nodes. So, we discuss the framework, the semi lattice and you know the iterative algorithm in the last part. So, now what exactly are the properties of the iterative DFA algorithm, the iterative DFA algorithm iterates over the statements of the program, applying the in and out constraints or equations until the solution converges to f x point. So, the first property of the iterative algorithm is, if the iterative algorithm converges, we still have not given conditions on its convergence. So, if the algorithm converges, the result is a solution to the data flow equations. This is quite straight forward to understand, because the if the algorithm converges then you know the algorithm make sure that there is no change in the solution rather in the value produced by the algorithm and therefore, it must satisfy the data flow equations. If the framework is monotone, then the solution found is what is known as the maximum fixed point of the data flow equations. So, this is a very important condition, the framework to be monotone and what exactly is MFP. So, the maximum fixed point solution is such that in any other solution, the values of in and out are less than or equal to that is less precise than the corresponding values of the MFP. So, the MFP solution is the best that you can get by the iterative algorithm and the any other solution that we get would only be less precise. So, this is the advantage of getting a maximum fixed point solution using the iterative algorithm. So, this is guaranteed by the framework again, but the framework must be monotone in this case. If the semi lattice of the framework is monotone, so this is a condition again and of course, it is of finite height most of our rather all of our semi lattices are of finite height, then the algorithm is guaranteed to converge. So, termination is guaranteed. So, again intuitively the we can see that the data flow values decrease with each iteration, maximum number of iterations possible would be height of the lattice into the number of nodes in the flow graph. So, why is this true? The height of the lattice is the number of distinct values possible in the lattice one for each level. So, we start with the top and then we can go up to the bottom, we cannot go below that and as we already discussed the values actually you know decrease with each iteration. So, at some point they do not decrease any further the maximum rather the lowest solution that can have that can be obtained is the bottom of the lattice. So, that would be the, so we start from the top and go up to the bottom that would be the height of the lattice and every time we are going to look at all the nodes in the flow graph. So, this is the maximum number of iterations possible for the algorithm. So, let us now discuss other possible solutions to the data flow problem and then understand the ideal solution, the you know maximum fixed point solution and the MOP you know solution as we call it. So, MOP solution would be the meet over all paths solution. So, what would be the ideal data flow solution to the problem to a particular problem. Suppose, we can find all the possible execution paths from the start node to the beginning of a basic block B or a statement B. So, this may or may not be possible in all cases, but let us assume that we can find all the execution paths from the start node to the beginning of B. So, if we assume forward flow then you know we can apply composition of the transfer functions to the data flow value at the end of each path. So, what we do is that consider every point on this path each path then compose the data flow values using the transfer functions at those particular nodes. And at the end of the path that is the beginning of B, we would have actually got the composed value of the data flow from the start node to the beginning of B. So, we have one such value for each of the paths which are converging at B. Now, no execution of the program can produce a smaller value for that particular program point than this equation what equates this equation can produce. So, ideal value of B that is possible is the meet over all the execution paths from start node to B of f p of v in it. So, v in it is the initialized value of the data flow entity. So, f p is the composed transfer function over the path p. So, we apply the composed transfer function to the initial value. So, you get some value that is what we talk about here then we take the meet of all these values for each one of the paths we get the ideal data flow solution rather value. Why is this the ideal we are considering the execution paths. So, and the data flow value that can actually accrue at execution time. So, you really cannot get anything better. So, answers greater than ideal. So, in the sense of the partial order relation are actually incorrect. So, the point is we get a greater value only if we leave out some execution paths valid execution paths. And any value which is smaller again in the sense of the partial order relation are equal to ideal is of course, fine, but smaller than the ideal solution is conservative. So, in other words it is safe, but it has infeasible paths have been included. So, this makes it you know less precise. So, closer the value is to the ideal value more precise it would be. So, if you include less and less number of infeasible paths then you know the value becomes better and better. So, this is the meaning of an ideal solution. So, you consider all the execution paths to a particular point and then take the meet over all those execution paths of the data flow value using the composition of the various transfer functions and the meet operator. So, the next type of data flow solution is the meet over all paths solution m o p as it is called. So, finding all execution paths is an undecidable problem this is a very well known difficulty. So, we do the next best that may be possible sometimes we approximate this set to include all the paths in the flow graph itself. So, if we do that then it is called a meet over all paths solution. So, again we consider a path from start node to b. So, it is not necessarily an execution paths some of these paths may not be executable also. Again we apply composition and then the of the of the transfer functions that would be f p over the initial value and we apply the meet operator. So, now m o p will be less than the or equal to the ideal value because we are considering a super set of the execution path some of these paths may be infeasible. So, we have included those as well and that means we are approximating the ideal solution by the m o p solution and m o p is bound to be less precise than the ideal solution. So, there is one more difficulty suppose there is a while loop in the program then finding all paths in a flow graph may still be impossible because we do not know the number of times a while loop would execute we may not be able to say this is the number of paths in the flow graph from one point to another. So, the next best is to apply the iterative algorithm. The iterative algorithm does not try to find the you know paths in the flow graph what it does is it visits all the basic blocks not necessarily even in execution order in a random order it applies the meet operator to each joint point in the flow graph not necessarily trying to take the paths and then apply it at the joint point. We just take the joint point and apply the meet operator that we know already the solution obtained is called as the maximum fixed point solution. So, this would be a little more approximate than the m o p, but there is a theorem which we are not going to prove it says that the if the framework is distributive then the m o p and the m f p solutions will be identical. If the framework is just monotone, but it is not distributive then the m o p is superior to the m f p solution. Fortunately, the reaching distributions problem the available expressions problem and the live variable analysis problem they are all distributive in nature. Therefore, for these problems the m o p and the m f p solutions will be identical. With just monotonicity we are going to have this inequality m f p is a safe, but the least precise solution m o p is the next safe, but less precise than ideal solution and the ideal is the best which you cannot actually achieve. So, the solution provided by the iterative algorithm is always safe that is the m f p solution. So, we have answered a couple of questions so far we have talked about the quality of the data flow solution the solution provided by the iterative algorithm. We have talked about the convergence of the data flow algorithm and we have also related the you know m f p to the iterative algorithm. So, let us continue with our discussion on the theory of data flow analysis by considering a special type of algorithm for constant propagation. So, before discussing the constant propagation algorithm I must give you a little bit of background using the lattice diagram that is shown in the picture. So, here is the constant propagation lattice. So, these are all the values of for each variable which is a constant in the program we are going to have one lattice of this type. So, these are all the values that the variable can take if it is a constant and if it is not a constant then it would be given a value of bottom and if it is an undefined value then it would be given a value top. So, these are the only three abstract values possible the top or an actual constant value or not a constant value bottom. So, this is the lattice for each variable and what we want to do is to take a product of the lattices of all the variables. So, if there are ten variables declared in the program then we will have we want to determine which of these ten variables would indeed be a constant. So, we will have to take the product of all the lattices of these ten variables this would be too large to show. So, let me show you a very simple product lattice. So, this product lattice has a 0 here a top and a bottom the other product lattice has a 1 a top and a bottom. So, it does not even have 0 and 1 in both of them. So, if you take the product lattice the product lattice is defined as S 1 cross S 2 the size of the product lattice would be size of S 1 cross size of S 2 and an element in the product lattice would be a pair a comma b. So, that is shown here and the partial order would be a comma b is less than or equal to c comma d if and only if both the components a and b are less than or equal to c and d respectively. So, a less than or equal to c and b less than or equal to d. So, the same holds here you know. So, this constant value here for example, 0 is less than top then bottom is less than 0 1 is less than top and bottom is less than 1. So, these are the partial order relations. So, using this definition and all the possible values for the product lattice we have just considered exhaustively all the possible values from top top to bottom bottom and we draw this lattice right these are the various partial orders which are possible. So, if there are you know a large number of such lattices taking a product of these we cannot really show it in pictorial form, but believe me that is the lattice we want to consider when we do constant propagation. So, let us understand the constant propagation framework the reason we want to do it is the constant propagation framework happens to be a monotone framework, but it is not a distributive framework. So, in other words when we apply the iterative algorithm for constant propagation we get an approximate value it cannot catch all the constants in the program. So, there would be some which are left out we will show you examples of such a situation very soon. The lattice of data flow values in the constant framework is the product of the semi lattices of the variables one lattice for each variable I already mentioned this in the product lattice. So, even this has been mentioned if you take two variables we have a 1 comma b 1 if you have 10 variables then we would have 10 components in this entity a 1 b 1 c 1 d 1 etcetera. So, a 1 b 1 is less than equal to a 2 b 2 if and only if a 1 is less than equal to a 2 according to the a partial order and b 1 is less than equal to b 2 in the b partial order. So, each of these semi lattices for the variables may have a different partial order that is the most general case assuming a 1 a 2 in a and b 1 b 2 in b. So, each variable v is associated with a map m and m v is the abstract value of the variable as in the lattice. So, what is the abstract value top the constant value or bottom these are the three abstract values possible. So, there is going to be 1 m v 1 function m v for each of these you know variables rather is a map m and m v is defined for each variable. So, it could be defined differently for each variable each element of the product lattice has a similar, but larger map m right. So, this map m is in the product lattice whereas, this map m is for each one of the variables separately. Now, in the product lattice when can we say a map m is less than or equal to the map m prime. So, we can say so provided for all the variables v we have m v less than or equal to m prime v. So, this must hold for each variable m prime is a different map m is a different map. So, for these two maps if we take m v and m prime v then the less than or equal to relation as in the map for the variables must hold. So, if this is possible for all variables then the map m is less than or equal to the map m prime. Why did we define the map that is necessary because our transfer function would actually depend on these maps. So, to define the transfer function for the constant propagation framework let us assume that there is one statement per basic block and the transfer functions for basic blocks containing many statements may be obtained by composition. This is something we already know m v is the abstract value of the variable v in a map m. So, and the set f of the framework contains transfer functions which accept maps and produce maps. So, this f we are going to define the transfer function one sample transfer function of f very soon. So, that would take m as a you know as an input and produce some other m prime as the output. So, f also contains an identity map which is required for the framework and for the start block this m naught v would be undef for all the variables this is reasonable because all variables are undefined before a program begins. We assign values to the variables and thereby they get their values. So, now let us define the transfer function a sample transfer function of the set of transfer functions. So, let f s be the transfer function of the statement s. So, for every statement s we are going to have such a transfer function and capital F will be the set of all such transfer functions. So, again as I said the f s takes a map and produces a map.  The first case is s is not an assignment statement at all. So, if it is not an assignment statement it could be a branch statement or an ordinary go to statement conditional go to these are all possible and then f s is the identity function. If it is not an assignment there is no side effect therefore, it is an identity function. If s is an assignment to a variable x. So, then m prime v is m v for all v naught equal to x. So, the assignment is being made to the variable x. So, for other variables the map does not change that is what this says m prime v equal to m v for all v naught equal to x and for v equal to x it changes. Again there are three cases here if the r h s of s is a constant. So, we have an assignment to x the right side is a constant. So, we have a statement of the form x equal to c then m prime x will be obviously a constant. So, in other words the initial map of x would be something different, but after the assignment x equal to c the map of x would become c. So, from now on whenever you apply the map for x you get the constant value c. If the r h s is of the form y plus z. So, in other words the assignment statement is x equal to y plus z. So, if we apply m to m to y and we apply m to z. So, and if m y and m z happen to be constants. So, there that in other words y and z have been assigned constant values earlier that is when m y and m z can become constants just like this. So, in such cases such a case we add the two constants and that would become m prime x that is quite logical and intuitive because if there are two constants the new constant value would become the map of x. So, if either m y or m z is determined not to be a constant then the new map of x will also be n a c. So, if neither of them is n a c and y and z are not constants then we say that the new map of x would become and f. So, these are the three possibilities and we have covered all of them. So, both are constants. So, we add the constants one or both are not constant. So, that is a very strong statement then x would become not constant and in other cases it would become and f. If the RHS is any other expression it is not an assignment of the form y plus z it is not a constant it is something else in such a case m prime x would be n a c. So, we do not want to take any chances we just make it not a constant. So, the constant propagation framework is said to be monotone in other words the transfer function that we discussed here always produces only you know is monotone and therefore, the values produced by it will always you know be at the produce it will always produce a lower or same level value in the c p lattice whenever there is a change in inputs. So, let us check it out. So, let us say y changes from. So, this is undef this is constant and this is not a constant. So, if the input for y changes from undef to c 1 all others being constants then for each of these combinations is check this undef is undef here undef is undef here. So, it remains at the same level c 2 you know undef and c 2 was producing undef here now we have change the input to c 1. So, c 1 and c 2 will become c 1 plus c 2. So, we have actually come down from undef to c 1 plus c 2. So, lower value third one whenever it is undef and nag it will always be nag. So, with this nag combination what this would be nag is the lowest level and we get nag here also the same is true from c 1 to nag as well. So, c 1 and undef gets you undef nag and undef will get you nag. So, we have come down from the undef to nag really c 1 and c 2 gets you c 1 plus c 2 since one of them is nag and the other is c 2 we get nag. So, that is lower and nag and nag will always get you nag. So, in other words this statement is true the transfer function m prime equal to f s of m always produces a lower or same level value in the constant propagation lattice whenever there is a change in inputs. So, because of this the you know we have shown informally that the transfer functions of the C P framework are indeed monotone. Now, let me give you an example of the non distributivity of the constant propagation framework. So, here is a very simple flow diagram this is not even you know it does not even have loops. So, on this side we have basic block b 1 with x equal to 2 and y equal to 3 and in b 3 we have z equal to x plus y. So, if we take this path x plus y indeed adds to 5 and on this path we have x equal to 3 and y equal to 2 just the interchange version of this and x plus y still adds up to 5, but unfortunately when we apply the iterative data flow analysis to this type of you know control flow graph for the constant propagation framework at this point we are actually going to take the join for the 2 x values which reach here for the 2 y values which reach here. So, since x carried a value of 2 here and x carried a value of 3 here the x value here can only be said to be not a constant because both are different constants at this again similarly y equal to 3 here and y equal to 2 here. So, the meet operation of 3 and 2 will produce not a constant value here n a c. So, with x and y being n a c at this point z will obviously, produce n a c. So, the iterative method determines z to be non constant, but z is always a constant and, but this cannot be determined by the iterative method. If we had taken the m o p solution. So, we would have taken this path separately and this path separately right. So, if we do that then when we take this path separately we take the value of x value of y and then the value of z is computed that is 5 and on this path we again take the value of x value of y and another value of z will be computed as 5 and now we take the meet of these two values at this point the z 1 and z 2 both of which are 5 will obviously, yield a meet of 5 here, but this was obtained using the m o p solution, but the iterative solution uses not a constant n a c value for z. So, this is the problem with the constant propagation framework it is not distributive and therefore, the iterative algorithm for solving the data flow equations will not catch all the constants available in the program.   So, these two will produce different results they should have produced the same result if the framework was distributive since it is not it produces different results. So, we can check it out here m 0 to begin with is undef for all the three variables x y and z when you apply f 1 then x gets a value 2 then in the y gets a value 3 and z has not been assigned anything.  So, f 2 gets a value 3 for x 2 for y and undef for z. Now, if you take the meet of the two values f 1 m 0 and f 2 m 0 these two values being different this will be a knack the same is true here these two values are different. So, this is a knack and these two are undef.  Whereas, if we had taken f 1 m 0 and then applied f 3 to it we would have got the z value as 5 of course, these two will remain 2 and 3 if we had applied f 3 to f 2 m 0 then we would have got the z value as 5 here as well these two remain 3 and 2. Now, take the meet of these two. So, whatever we have done here. So, these two obviously will produce knack these two will also produce knack, and the z value being 5 and 5 would have produced 5. So, the value being produced by this method is different from the value being produced by this method and therefore, the framework is not distributed. So, this is a counter example to show that it is not distributed. So, that completes our discussion on the theory of data flow analysis. So, let us move on and consider the control flow analysis which is also required before we study the optimization algorithms. So, in this lecture we are going to understand why and what is control flow analysis and we are going to study the dominators and their use in producing natural loops and we will also look at the depth of a control flow graph which lets us know how many iterations are needed for the iterative data flow analysis algorithm to terminate. So, why do we require control flow analysis? So, control flow analysis helps us to understand the structure of control flow graphs. So, the first use of this would be to determine the loop structure of control flow graphs. So far, we have only talked about loops in the graphical sense whenever I show you a control flow graph we see a loop in the graphical sense it goes back to one of the nodes in the you know up in the flow graph, but given a data structure for a control flow graph how do we determine a loop? The reason we require such a loop structure to be determined is that the optimization requires us to determine the nodes in a loop structure. For example, even the register allocation algorithm which we discussed you know the usage counts based register allocation algorithm it requires the loop structure to be known we must know various basic blocks which are present in the loop. So, then the dominator relationship has to be defined the flow you know analysis allows us to determine dominators and these dominators are very useful for loop invariant code motion. The conditions on code motion will all be defined using the dominator principle. We also require the control flow analysis the dominators and something more to compute what are known as dominance frontiers. These are useful in the construction of the static single assignment form which is a very useful intermediate form which permits many more optimizations we are going to consider examples of SSA later. And in parallelization we require the concept of a control dependence to state whether something can be parallelized or cannot be parallelized. So, let us begin with the discussion on dominators. So, let me show you a picture and then we will come back to the text. So, here is you know I show you a lot of paths in a control flow graph here is an initial node the initial node rather and there is a node d here forget this p 1 and p 2 for the present and there is a node n here. What we want to define is the dominator relationship. So, we say that the node d dominates node n if and only if all the paths from the initial node to the node n go through d. So, for example, there are lots of paths which emanate from the initial node. So, many of them, but they will all converge at d and then all the you know from d to n there are many paths of course, we are not bothered about how they actually diverge or converge. Our important point is whenever we start from i to reach n we must definitely pass through d that is the only requirement as far as the dominator relation is concerned. So, d dom n provided all paths from the initial node to n go through d. So, this is the definition of the dominator relationship which is actually termed as dom. Now, the initial node is the root and each node dominates only its descendants in the dominator tree. I have not yet shown you dominator tree we will do that after these definitions are over. So, assume that there is a dominator tree in which a node dominates all its descendants and obviously, the initial node will be the root of such a dominator tree. The node x strictly dominates another node y if x dominates y and x is not equal to y. So, this is a strictly dominates relationship x is not allowed to be the same node y and then we have the immediate dominator relationship x is the immediate dominator of y denoted i dom y if x is the closest strict dominator of y. So, I will show you examples of this very soon and a dominator tree shows all the immediate dominator relationships. It does not show the transitive relationships it will shows only the immediate dominator relationship. So, let me show you an example. So, for example, here this is the dominator tree for this particular control flow graph. So, suppose we consider the initial node b naught it obviously, dominates all the nodes in the flow graph because every path starting from the initial node to any other node must actually pass through the start node. So, that is why b naught is the root of this dominator tree. So, let us consider b 6 right. So, b 6 is a leaf node here. So, if and the immediate dominator of b 6 is b 3. So, this is what is shown here immediate dominator of b 3 is b 2 immediate dominator of b 2 is b 1 and that of b 1 is b 0. So, in other words the dominators of b 6 are b 3, b 2, b 1 and b 0. Let us verify that here b 0 is very trivial and b 1 is also trivial because there is only one path from start to b 1. So, all paths starting from start to b 6 will definitely have to pass through b 1. Then we have b 2 again there is only one path from b 1 to b 2. So, starting from b 0 to go to b 6 will also have to pass through b 2. So, that is so far now from b 2 how do we reach b 6. So, obviously if we go this way we cannot reach b 6. So, we will go to go through b 3 that means again b 3 will be a dominator of b 6. Then if we go through you know start from b 0 then b 1 then b 2 then b 3.  So, this is not a compulsory path you know going via these nodes is not compulsory. Therefore, since every path from the start node to b 6 does not contain b 5 and b 7, b 5 and b 7 do not dominate b 6 only b 3, b 2, b 1 and b 0 dominate b 6. So, this is very clear, but the say you know if you consider b 7 again all paths from b 0 to b 7 do not go through either b 5 or b 6, but they definitely go through b 3, b 2, b 1 and b 0. So, again only those are the ones which are dominators of b 5 and b 7. Now, let us understand how to compute the dominator. So, the principle of the dominator algorithm is very simple if p 1 to p k are all the predecessors of n o d n and d is not equal to n then d dom n if and only if d dom p i for each i. So, let me show you a picture this picture and explain what the statement means. So, we have d here we have n here. So, the from the initial node anyway the paths go through d, but the algorithm cannot determine all the paths and then determine the dominators. So, it has to be incremental in some way. So, what it does is it considers n and all the predecessors of n. So, if there are k predecessors p 1 to p k then. So, d dominates the node n if and only if d dominates every predecessor of the node n. So, if some of one of the predecessors is actually not dominated by d then you know we could have taken that path from i to the predecessors without going through d and then go on to n therefore, d would not have dominated n in that case. This shows that there can be no predecessor of n you know which is not dominated by d it must dominate all of them. So, this is the basic principle of the dominator algorithm let us you know. So, after this algorithm that we have provided here terminates the set of dominators of the node n would be the out set of the node n. So, this capital N is the set of all the nodes in the graph and for every node d n equal to out n for all n in n. So, this algorithm looks very right. So, this is actually just like a data flow analysis algorithm. In fact it is it is a data flow analysis algorithm. So, let us identify the components of the data flow analysis algorithm. So, we have out of course and we have in right then we have initializations for the out node. So, out of n naught is n naught permanently and initialization for n in n minus n naught would be capital N. So, capital N is very similar to the universal set. So, this is initialized to the universal set. Now, there is a while loop while changes to any out n or in n occur. So, this is the iterative this is the loop of the iterative algorithm and we have out n equal to n union in n. So, in other words this is out which is a function of in. So, this is again you know it is a forward flow problem because we are computing out in terms of in and in is considered as the intersection of the predecessors of n. So, out of predecessors of n. So, the confluence operator happens to be intersection. So, this is very similar to our available expressions problem in which it is a forward flow with intersection and that is the reason why because of this you know the confluence operator being intersection we have initialized the out n to the universal set n.  So, this takes care of every node dominates itself and in is the incoming set of nodes the rather the set of nodes which dominate the incoming point of the node n. So, whatever dominates at that point will also be actually transmitted to the out part. So, this is why and we add n to it which takes care of the reflexive nature and in of n would be the intersection of out p. So, again out p is a predecessors. So, we go back to this right. So, we actually have out here in these places and this says if you know whatever elements are common among the dominators of all these. So, the nodes which dominate all of them is obtained by intersecting these out sets and that is why the in part is intersection of the out sets. So, this is how the data flow analysis algorithm computes the dominators. So, let me show you an example. So, here initialization would be the out of all the elements b 1 to b 8 would be set to b naught to b 8 out of b naught will be set as b naught permanently. So, this is our universal set b naught to b 8 the order in which we visit the nodes let us assume that it is b 0 b 1 b 2 b 3 b 4 b 5 b 6 b 7 and b 8. So, in that order now when we. So, the dominators of this out b 0 would be set as b 0 nothing more to do the in of b 1 is set as out of b naught. So, that would be b naught and the out of b 1 would be the in union with b 1. So, we get b naught comma b 1. Similarly, in of b 2 we have actually two incoming arcs here one from b 1 the other coming from b 7. So, we must take the out sets of b 1 and b 7 and intersect them. So, that gives us you know this set is the universal set b naught to b 7 b 8 rather. So, we really get b naught b 1 and as the in set out set we add b 2 to it and we get b naught b 1 b 2. So, this you know is very simple to compute. So, let us take b 7 for example, in of b 7 again we have two of them coming in right. So, we must take the intersection of these two. So, out of b 5 intersection out of b 6. So, that gives us b naught b 1 b 2 b 3 and then the out of b 7 we add b 7 to this. So, that gives us b naught b 1 b 2 b 7 b 3 b 7. So, one more iteration would be required in order to stabilize these values and then the values do not change anymore. So, this is the dominator tree that we get from the computation in this case. Another example, this is an example which is adapted from Mahon Ruhlman's book. So, here this is a this is a you know this has many loops and so on and so forth. We are still not defined loops, but that does not matter to us. The node 1 is the initial node and that dominates all other nodes in the flow graph that is very trivial. So, let us consider node 9. So, the dominators of node 9 are 8 7 4 3 and 1. These are all the dominators. So, we are here. So, it is very obvious that we will have to go through 8 in order to reach 9 that is very simple to understand and to get to 8 we need to go through 7. So, that is also easy, but to get to 7 we do not have to go through either 5 or 6. We must definitely go through 4. So, 4 is also a dominator. To reach 4 we must go through 3 and to reach 3 we do not have to go through 2, but we definitely have to go start from the initial node. So, that is that is the reason why 1 3 4 7 and 8 are the dominators of node number 9. If we remember that this there are two loop structures here 1 and 2. Suppose, the loop structures change. So, this changes this is remains as it is. So, observe that only this was changed this change to this. There is absolutely no change in the dominator relationship. So, the loop did not contribute anything to the dominator relationship. So, having known what exactly is a dominator now we are ready to define the loop structures it is called as a natural loop. So, to define a natural loop we must first define what is known as a back edge. So, edges whose heads dominate their tails are called back edges. So, for example, if there is an edge from a to b then this b is called as the head and a is called as the tail. So, the head must dominate the tail that is called as a back edge. So, let us understand the back edge here. So, let us look at the dominator tree. So, here is an edge from 4 to 3 and 3 dominates 4. Therefore, 4 to 3 is a back edge, but 3 to 4 is definitely not a back edge even though you know. So, the tail 3 dominates 4. So, this is not what we wanted whereas, in the case of 4 to 3 it is 3 which is the head which dominates 4 the tail. So, similarly if you consider the edge from 10 to 7. So, we have 7 here it dominates node number 10 which is the tail. So, 10 to 7 is also another back edge and if you look at the edge from 7 to 3. So, 3 dominates 7 therefore, 7 to 3 is yet another back edge. If you look at this edge from 10 to 3 all together then 3 dominates 10. So, 3 is here 10 is here. So, 10 to 3 is also another back edge and obviously, 11 to 1 would be a back edge because 1 dominates all nodes in the tree in the graph 11 inclusive. So, if you are given a back edge now let us define the natural loop of the edge. So, given a back edge end to D the natural loop of the edge is the head D plus the set of nodes that can reach n without going through the node D. So, in other words in some sense the loop hangs from the node D. So, all the nodes which are hanging from D and in some way related to it will be the natural loop. So, the set of nodes that can reach n without going through the node D. So, the node D is called as the header of the loop and the significance of the header is as follows. It is a single entry point to the loop that dominates all the nodes in the loop. So, this is the first property of the header and there is at least one path back to the header. So, that the loop can be iterated. So, informally when you look at it you know. So, if you consider this node from 7 to rather this back edge from 7 to 3 the loop consists of 3 and a couple of other nodes through which we can reach 7. So, we are going to look at the details of there are many other nodes which need to be looked at. We are going to consider the algorithm for computing the natural loop in the next part of the lecture. So, this is the end of today's part. Thank you.


Welcome to Reader Syndicate 3.0, the next evolution of the look into counterculture that is canna. My name is Matthew, owner of Riot Seeds, and this started as a one-man mission for strain history and breeding science. Over time, it's evolved into something bigger, better, and more of a team effort. We will be joined by members of the Canna Luminati and other friends throughout the seasons to hear their takes on grow techniques, breeding science, strain history, and more. Our mission is to combat the narrative that corporate cannabis and seed posters are obfuscating for their own financial benefit. Welcome to the Underground. We are The Syndicate. Welcome to Reader Syndicate. I'm Matthew, here with my co-host Thousandfold, and today we're talking again with Jay Generation from Federation Next Generation Seeds, one of my favorite BC Seedmakers there is, one of the most successful BC Seedmakers there is that is still around doing his thing. Welcome Jay, glad to have you again. Thanks for having me. Thousand, you want to kick it off? Yeah Jay, so like I mentioned before, I was actually just refreshing myself and watched the last couple of chats you had with Matt, which is now maybe just under a year ago. Yeah, close to a year. Yeah, in there you talked about, you know, moving to Argentina, and so maybe before we get into the nitty gritty of what's been going on just recently, maybe tell us a bit about what it was actually like to move, like what was that whole experience like? Well, for me, I'm quite used to moving in my life, so I lived in Spain for quite a few years and in Holland and back and forth to Canada. So I'm quite used to moving, but this is a long way to travel. It's about a 30 hour flight from Canada, and I've been coming back and forth now for the last year, about four or five trips. And now I'm making a more permanent switch down here. Just the cost of living is so much cheaper, and to get into the legal system for growing and selling seeds, it's way cheaper and more economical here. And in Canada, it's just a nightmare of bureaucracy. So it just seemed like a natural move to me. I speak Spanish, or a basic Spanish. So yeah, yeah, this was just a nice place where I can come and produce seeds here on a larger scale at a much, much better price. Is Argentina mostly a Spanish speaking nation? Yes, it's all Spanish. Okay, yeah, I didn't know if it was like Portuguese, like Brazil, because it's down, isn't it down in that region? Yeah, yeah, neighbors to Brazil. That's right. Okay, cool. Yeah, but they have their own version of Spanish here. It's not like Mexican. Yeah, that makes sense. Yeah, cultural Spanish. Was there a lot of preparation for you to move? Not really. Like I said, over the last year and a half or so, I've been making regular trips down here. Just getting to know the market and going to the big expos and the trade shows, getting to know the distributors and the licensing process. And yeah, so my choice is between Chile and Argentina, but in the end I chose Argentina. There's more going on here. I like the culture. The city is like Buenos Aires is like living in a European city like Barcelona. And then when you go out to the country, it's like being in the prairies out in Canada, go out to rural Alberta or something, you know. Oh, wow. So it's kind of the best of both worlds. Yeah. That sounds lovely. One thing I want to ask you right away is what the actual kind of weed scene there was like, you know, genetics, culture, all that. There's a huge weed scene here and it's been, it's growing by bounds every year. And they've recently legalized it, but the legalization process is so broad. There's the medical personal licenses that you can open a, what they call an OMG club where you can grow weed for people. You can't make a profit, but you can pay your growers very well. Yeah. That's kind of how that works. The licensing that I've began here now is for seed production, seed import, export and research. That's awesome. So that's, yeah, that's the process I'm starting now. And is it less prohibitively expensive down there to get those licenses than say Canada or the US? It's ridiculously economic. I don't want to almost say it because I don't want my competition to move here. Yeah, no. Hundreds of dollars, not tens of thousands of dollars. Put it that way. Under a thousand dollars, I got all my licenses. Yeah, that's amazing. So it's, it's just a paperwork process. Is it a long paperwork process? Not too bad. A few months, a few months. And I'm going to, I'm doing my paperwork processing in one of the provinces, the smaller city. So it'll happen a lot faster than doing it here in Buenos Aires where there's 17, 18 million people. Oh, sure. It takes longer to get to the paperwork. So I got, had my legal problems out in the province this year. So that's why I'm doing my paperwork now. And yeah, it should happen pretty quickly. So I'm pretty pleased with that. I've got a good lawyer getting my, my, all my, my papers in order. So, yeah, it's been an adventure. Has it changed the work that you've been doing to, sorry, that's the way we're saying it, has moving there changed like the way you've approached your work in any way? Like what have you been working on this last year or so? Well, there's lots of people here and, and farms that I've been testing out my genetics. So I've got to see my genetics growing on a much larger scale and see how they perform here. More so than I could in Canada. Canada was so prohibitive. I didn't know if it was indoors. And here I was able to do some, see a lot of my genetics and under greenhouses and on big farms. And it's, and in Chile as well. I got friends over there that grow for medical associations. And just the scale that I've seen my genetics growing on here is just so much better than Canada for, for me. So yeah, I'm getting, getting to learn a lot about my strengths in a different, you know, a different latitude, a different climate. And seeing which ones are thriving, which ones don't do so well. Can you tell us some specifics about like specific highlights or contrasts in the growing patterns? Well, big thing down here because we're south of the Amazon, the high, high humidity. It's a really, really big problem here. And that's what everybody's looking for all the serious growers here. They're looking for genetics that can handle the humidity and don't get Budrod or powdery mildew. And they have a lot of, a lot of the Spanish genetics is what's on the market here is the Spanish seed companies. And they tend to have a big problem with, with, with mold. And everybody, everybody that's been growing my strains here, that's one of the things that they really, really liked. I did, because I'm living in British Columbia on the West Coast. I'm sure you know all the rain. A lot of my strains are really, really resistant to Budrod. And so I'm hearing a lot of good feedback. Yeah, I'm very happy about that. And, but yes, harvest season now is going to be in about two and a half months or so, about two months. But I've had reports from last year as well now, coming here for a while. Are there any ones specific that you're, you're pretty stoked about that have done well in that super wet climate down there? Actually, yeah, there's been a few. My Avalon, I'm completely happy with it. My Blue Dynamite, which is the Avalon original grapefruit cross, extremely well. But those were, I selectively bred those in Canada for mold resistance. My surprises though have been my half CBD, half THC strain, first contact. Yeah. It is just so amazingly healthy and robust here with no Budrod. And just, it looks, the buds look like they're, they were grown indoors. Oh, wow. It was just beautiful. This is the outdoor fields I've seen of it on two different farms. And how did they make that THC CBD down there? Is that something that they look for when buying cannabis? More and more. The older people, yeah, it's more and more becoming, but they're like, they just want the strong stuff to a lot of the people. Because people here, the economy is bad. People want the most bang for the buck. Makes sense. Yeah. But my other strain that's been thriving down here is my Latina sativa. I told you about that one. It's the Colombian red crossed with the Mexican sativa that I've been working on back in Canada for years and years. And there's plants now over, it's still early in the season, but three, three and a half meters and going strong and start, just starting to flower now. Where did you grab that Colombian red from? Do you remember? From the source? I'm not exactly sure. It was probably at least 20 years ago. I think it was one of Romulan Joe's friends. Oh, wow. Yeah. So, yeah, it was back in the early 2000s. I actually can't nail it down right now off the top of my head. Was it long flowering? Yes, very long. About 12 weeks or 12 weeks. We were this close to getting Romulan Joe in. This close to getting him on the show. Oh, you were getting it. Oh, sweet. Yeah. I have talked to him and he's super cool. He's super nice, but yeah. He's such a nice guy. Yeah, he's great. And what was the Mexican sativa like that you used in that line? I think it was a Oaxacan. Oh, nice. The Oaxacan that I used, yeah. And, yeah, still, like I said, it's from 20 years ago. So I kind of revived it. A few years ago, I revived it again and then brought the seeds down here. And they're just thriving, thriving. The plant doesn't stop growing. Like they're back at home, huh? Yeah, exactly. Makes sense. I did want to ask real quick as well. Like, have you been working with anything new since you've been there? Yeah, I have a few local strains, two local ones. I think one is from Brazil. Another one is from the northern provinces here that grows up in Corrientes. The northern province of Argentina have been growing and amazing. Like the branching pattern reminds me of the old, original great troops from back in the 90s and just constantly branches. But has that almost like the haze smell. Oh, nice. A lot of people are telling me when they see the cat here, I think it's reminiscent of a lot of the old Brazilian varieties from way back. But this group of growers have had it now in the northern provinces here for a while. So where I've got that. But, yeah, that's a local variety that I believe comes from Brazilian genetics because a lot of the stuff comes down from Paraguay and Brazil. Yeah. And Argentina, for some reason, don't grow a lot of their own weed even though they have perfect growing conditions. It's kind of surprising to me. Were there any like old Argentina strains you had heard of when you got there that were kind of legendary legacy type strains? Yeah, there's a few things I can't say any names in specific, but nobody really raved about any of the local genetics. There wasn't anything that really stood out as something special. I talked to people. All the local growers, all the good stuff genetics come from elsewhere. The local stuff is not worth bragging about. Yeah. So the Brazilian stuff has some good genetics there. Oh, yeah. Like the Bahia Blackhead was a big one there. The Limone Verde stuff like that. Okay, yeah. And they take into the cookie stuff there, like the modern stuff. Are they about that yet? No. Where have they been up? No, not yet. A few of the international deduction Spanish companies that try to advertise some of their seeds as American genetics because it's the flavor of the month type of thing. But the cookies and that, I sell quite a bit of the, there's a lot of interesting things like the gelato and the granddaddy perps and things like that. But no, the cookies hasn't been a big thing here yet. That's awesome. It smoked some good, really good white truffles the other day though. Oh, did you? They made it down there? Yeah. That counts. That counts, I think. That counts. Yeah, definitely. Delighted as well, maybe. In-bread cookies for sure. Okay, that's really interesting. I mean, when you're, you know, you talked about some of the genetics you're getting from Brazil. What's it like being down there in terms of being exposed to this kind of more regional genetics? It's, well, I live in Buenos Aires and work around here, so they're exposed to a lot of international genetics, but it's almost all Spanish, often Spanish and a few of the Dutch companies. And there's only one really American country company that I've seen here at the trade show circuit and in the stores is the Humboldt Sea Company. Yeah, they've made it big everywhere. Yeah, so me, the next generation and Humboldt are basically the only North American companies that we see on the making their rounds down here. Yeah. Well, that's nice.  Well, the thing is one good thing too, I think we're in a good position is they're getting sick of the Spanish genetics and they're starting to figure out it's all the same seeds being repackaged. Different names. It's all the same name, all slightly similar names, but it's all coming from the same bag. Yeah. And they've figured that out now and they want something fresh.   It doesn't matter what company. I can't believe it. I can't believe how it's all just white label and repackaged. Everything. Everybody goes. But what am I going to do? Yeah, we've talked about it on the show a bunch and people are just, it just like goes over their head that no, they really are picking from one bin, throwing it in a bunch of different seed packages for the most famous companies. Do you know why? Do you know why, man? And she is like, yeah, yeah, I know other people do that. But the stuff that I buy isn't like that, right? Yeah, that's true. Well, you're buying 10, 15 cents a seed and then they turn around and put it in a baggie and sell it for several dollars. Yeah, the Mylar switch. So do you want to start digging into more recent stuff before we jump into anything else? Oh, yeah, well, yeah, I had a little adventure. Yeah, I'd love to hear some more about it. It sounded pretty insane. Yeah, it was pretty insane. It was just bad luck. I've been up here. I went to see, I've been in the province here in the city of Rosario. So I have my friend who has an ONG and a medical cannabis club and he owns a cannabis radio station for all that. So I was going to go see him and have him help me with my paperwork to get registered here in the system. We were driving there a few weeks ago and we got pulled into a check stop. It happened to be a military check stop in what happened to be a cartel city. And so they pulled us in and they didn't know what to do with us because we were foreigners and they found all my seed collection that I was about to declare to the government to sign up for my licensing. And they were military police. They didn't understand the civilian law. And so they locked us up for several days with no phone calls, no nothing. And so yeah, just because they didn't understand the paperwork and I didn't have the paperwork in correct order. So the only reason we got out is I have some really good friends and they called the car rental company and they tracked our car by GPS and the GPS showed that we were in a really bad, bad neighborhood where people disappear. So my friends thought we got the car jacked and so they called, they followed the GPS and they found out we were in the back of a military compound, it was where they were keeping us. And so he showed up with his lawyer who happened to be work for the Ministry of Security for the province. And so my buddy rolled in after day three that we had no phone calls from anyone or nothing. My friend showed up with the lawyer and the guys in suits and the police treated us differently. What was going through your mind in the first day or two? We had no idea with no phone calls. They said, oh, we called the Canadian Embassy but they're not answering the phone. They're completely useless. So we were just waiting and we didn't know three days. We didn't know. And the Colombians in the cell next to us were telling us they'd been waiting there for six months just to get and haven't even been charged yet. So we were thinking the worst. Oh my God. So we were, yeah, my friend showed up with the lawyers and before that the police were treating us horribly.  So yeah, and after that all the guards started treating us like how do these Canadians know the lawyer for the Ministry of Security and who are all these government officials showing up? Yeah. And this happened to be a friend of mine who knows the right people and we got lucky and he got us out. Thank God you had good friends that went looking for you. Yeah. He found us at 4.30 in the morning following the GPS and found the car in the back of the compound. And then he got on the phone with the lawyers and yeah, they came in and saved my friend.  Yes, yes. Do you have any idea what would have happened if he hadn't done that or they hadn't been able to touch with him? We were told that we could have been there for weeks and weeks before the Canadian Embassy would have actually got some kind of formal papers. So right now basically I'm released right now temporarily. I can't leave the country. But basically the judge says because I quite honestly gave them my story. I said I'm here to open my legal company. I didn't have my papers right in proper order and that's why I'm coming to Rosario to do my paperwork. And she's seen that I was above board. I got all my tax papers and all that's fine. She's released me but I have to get all my licenses now by law. She said part of my conditions of my release is I have to get all my cannabis licenses fast. So I might even get my licenses faster than the local people because the judge says I have to. So it could end up working out for me. I'm trying to think positive about it but I can't leave the country until I'm fully licensed. So they kept your passport? No, they actually gave me my passport back with restrictions. Yeah. How has it all felt? How long ago? About a week and a half ago I got out. Jeez. How are the conditions? How are the conditions? It was actually I was very pleased. It was a military prison because we had bunks and it's not eight guys to a cell. So we actually had a mattress and a blanket. The guys that I was in with were good but there was zero privacy. The doors are never closed so the police just come through anytime they want and just go through your things and they basically kept us sleep deprived for three days.  Three days. The food was shitty. That's what you expect I guess though. Yeah. The guys in there were funny because we were in novelty. They'd never seen Canadians down there before. The cell beside cocaine guys that got seized with a big airplane from Medellin and our cellmates, a big ecstasy dealer and everybody was treating us like weird, like why are you here? It's a bag of seeds. That's crazy. There's no flower even. Nope, not even a single flower. So the judge and the prosecutor right now are arguing they're trying to figure out what classification this fits on there because the laws are still being written here and it wasn't really a crime. It was just failure to do my paperwork in the right order. So that's what we're working on right now. I'm going to do whatever they ask of me and I'm going to get my licenses and try to get back to work. Yeah. Did it affect anything you currently have growing? Did you have to chop stuff down? Maybe I shouldn't even ask that. Let's go to the next one. Yeah. Did it slow you down at all I should say? Well, yeah, a little bit. Yes, it's told me down some. Yeah. Okay. Throw with the punches. Yeah. God, that's a rough, rough way to go. All for seeds. All just trying to grow some legal weed in a country that's supposed to be really good with it. Yeah, well it is very good with it. But my Spanish is a little bad and the paperwork I didn't get it filed in the right order. So that's basically I'm going to be looking at a probably paying a few fines and cartel people that picked you up. Yeah. But it was narco police. It was the police that hunt the narcos. We had the guns do our head. Yeah, I bet. That's some serious. Yeah, I'm not used to that.  Yeah, that's got to be very unnerving, especially in another country where you don't really speak the language as well. And it wasn't as bad for me, but I had my friend just visiting for a couple of weeks. I'm going to go do some fishing. And he came with me and so he ended up doing three days with me now as well. So, and he did not speak a single word of Spanish. So he's a lot more stressed than I was. I at least know the language somewhat. So we're waiting right now. He's waiting to get his money and his phone back from the police. Oh man, so he's still there too. Is the file charges on him as well? No, it's me. As I told the police and the judge straight up, my friend is visiting. I own a seed company. And it's pretty obvious he's got nothing to do with the business. What a wild ride, bro. You're going to end up locked up abroad or something undiscovered.  No, I don't. I got good friends here, I think. Yeah, dude. I can't even imagine if I were in that same situation realistically having to rely on someone else to figure out one that you're missing. Two to take action, you know? Yeah. I was trying to figure it out. I thought when you get in there you start thinking, okay, just keep your mouth shut and give them time to figure this out. But there's day two, two and a half and like, okay, did they figure this out now? And then that like a miracle they showed up out of nowhere.  And then after we had my friends come and visit us we started getting treated a lot, a lot better. And then at the end when the judge gave us the release and we went back to the barracks to pick up our bags and our reclaim our stuff.  Yeah, right. But two of them asked me, being a police officer here is horrible. When you get your license can we come work for you? Oh, yeah. Please ask me for a job. When we were leaving, I was like what kind of bizarro world is this? Yeah, right?   Right? That's not going to happen, pal. Yeah. We can definitely come back to this. I just wanted to ask you, what does the rest of the year look like for you now after this? I'm just... Yeah, I'm just going through my paperwork. I'm getting a job here with my friend as soon as I get my taxes filed and I'm legally in the system here. There's no NGO here that grows for a big medical association. They want me to come help them on the farm because they don't have anybody that can grow on a large scale. Yeah. So I went and advised them on how to do that. And plus, I've had an Airbnb in a hostel here in Buenos Aires. So I have a 7 room hostel downtown Buenos Aires which is doing a little side project here. It's a pot friendly hostel. What is the tourism they like? Do you know how many tourists go there? It's a big city for tourism. Oh, yeah. There's a concert in South America whether it's anybody famous, Buenos Aires is where they come. 18 million people live here. Wow. So it's huge. Yeah. It reminds me of New York. Go ahead. What are you saying? I was going to ask if you had you bumped into many other Canadians while you were there. Not too many Canadians. A lot of Americans. There's a lot of gringos here. But there's a huge expat community. They're all kind of strange fellows too. Like everybody Kenny there. Yeah. Before we came on, there was someone that I had met a long time ago in the JNOS named Mr. Hayes. So it was cool to see him as well. That's who we're speaking about. Mr. Kenny Hayes. He's very well known. Well known, yeah. He's been around for a long time. Almost all the people in Amsterdam when I was first getting in the scene knew who he was and he was kind of the dude to know back then. Yeah. It's cool to see him. Yeah. In terms of the community and the people you meet, have you gotten to meet many of the other local, either like seed makers or growers or is it kind of still a bit more distant? No, I've been very fortunate here. My one partner that I work with, she had a lot of my distribution in Chile. She knows everybody in the business of South America. She speaks at all the big expos. She owns the cannabis and health museum in Valpariso, Chile. She's owned the cannabis and health museum there for years and she has pot friendly bed and breakfast. Has host cannabis cups. So she's helped me mix with the local community in the south for all the cannabis cups. I get to go all to the private events. I've got a few growers down here that are trying to, right now a lot of people are trying to team up with me and I'm still not sure which direction to go because they want to, it's a business opportunity but I want to do things myself and not team up with too many people. Yeah. It might take me longer to get into the system but I'm my own boss then and that's how I prefer. I didn't move down here to grow for other people but I've been offered several big farms down here that are licensed but I'm taking my time. I'm not in a hurry. Now I'm in a hurry obviously. After my legal problems other than that, I've been kind of easing into it quite slowly but I sponsored a few of the big cannabis cups in Cordova and Rosario and North Buenos Aires so I've gotten to know the community very well in the last few years. Are there several cannabis cups a year there? Many, many. It's like the USA and they'll speak to them. They're popping up. There's more every year. There's more. That's awesome. Are the Spanish there in heavy presence or are they mostly doing the mailing? They're here in heavy presence but they usually team up with a local distributor and they have to go through the licensing process as well.  When it comes to the Spanish companies like in some of the Dutch companies are they actually sending their own gear down there or are they just having them produce seeds and packaging it as their gear? I believe I've been at both. Yeah, that makes sense. Yeah, they make enough here to produce a whole new system. Yeah. Sounds like it's a good place to produce a lot of seeds though by the economy wise how cheap it is to produce seeds down there. For me the economy is the number one reason I can be here for a couple hundred dollars I can rent a farm. Wow. So labor is cheap and highly skilled and the roads are good better than Canada. Oh wow. They have economic problems but everything seems to work here. You had a good question. I have a couple actually so while you were talking about the edges that reminded me of what's been going on in Thailand have you heard much of that, Jay? The recent changes again? Yeah, I haven't talked too closely here.  Yeah, I have a few friends that are here. The newest government is not keen on it but they're keeping mid as far as I know. Well in Argentina here too we just had the election a few months ago the new president here and he claims to be a libertarian but I think he's pretty hard on drugs so some people are scared of what he's going to do but I think this is so ingrained into the system now and there's corruption on every level here on other levels the level of corruption here there's no way for them to get this out of the system now even if the government does want to change it it's cannabis is in now there's no change in it. Yeah, I can't put the genie back in the bottle. You're good. So the other question I had was what's going on back in Canada like are you needing to maintain anything over there while you're still in Argentina? I have my genetics safe with friends back in Canada and just guarding my mother's trains things like that but my partner's still in Canada running a website he's well stocked before I moved down here he made sure he was well stocked so yeah other than that things are going on smoothly in Canada I think the government had put a cost to go around the operation in Canada legally it was just it made no sense it's not much different in the US right now for a lot of the big seed makers here it's getting so prohibitively restrictive and people think that because they hear in other states that it's more illegal even in California realistically it's less legal to grow more legal to buy and that's when the quality dips out yeah it's interesting down here I think they're I like to design how they're doing the laws down here and it's not cost prohibitive it's not it's harder for big corporations to monopolize the way they set it up here and they kept it community based and club based from the communities so yeah it has an ONG or a company that helps to sell weed you can grow up to 1,300 plants with your patients and the prices here are double or triple that we get for it in Canada like almost 10 US dollars a gram wow in Canada you can barely sell it for 3 or 4 dollars a gram yeah it's gotten so low so yeah here it's amazing how high the prices and how the low the cost of production is so for me it's a no brainer is there a connoisseur quality market there to be had yet yes there is I've got a few people talking about their opening dab bars in clubs like that but it's like anywhere they got your price range from your 5 dollar a gram weed to your 12 dollar a gram weed for the top quality but a lot of people here don't know the top quality stuff so when you show it it's mind boggling to them oh I'm sure it's just making its way down yeah and the skills of the local growers are coming up pretty fast I mean it's a farming world it's a farming community right they shouldn't take them too long to figure out how this plant works and operates and what we want out of it no exactly but the good stuff is still growing indoors here because outdoors is a community factor but I don't know I've seen a lot of my strains being grown here and locals don't know the difference between indoor and outdoor and it kicks ass so I'm happy how's the electrical infrastructure there are you able to run big light grows there it's very very difficult to find the right property with enough electricity the average house here even my hostel downtown has only 40 amps oh shit I can barely turn on more than three air conditioners in the hostel at a time without blowing the breakers so it's inside the city I can't grow there obviously but you have to get a farm and once you have a farm though the weather is great here all around so basically you have the bedrooms you have the clones and the mothers alive and just keep feeding the greenhouses plants from the indoors yeah that's been one of my biggest interest in a lot of people moving to Thailand or any of these rural areas in South America was the electrical infrastructure for a lot of us that are used to doing big indoor operations for our seeds and granted it's not really economical to do that in the United States anymore either it's become so expensive for kilowatt hour and everything looking to different methods yeah well some of the places I've been looking at just the way they build the structures here in the houses usually on the main floor will be a store or a restaurant or a mechanic shop a place like that and then the apartment is above it so I'm looking for an entire building so if you have a mechanic shop or a restaurant you know you have no shortage of electricity yeah good point I've been looking for multiple locations for a place in the city but most of my growing I like to do out in the country so so yeah that's we're looking for that right now for a country place right now what kind of strains do you have stocked with Taylor pretty much our whole catalog we still have it well stocked there's a few actually strains that aren't on our site yet that I should be I should get on working on that but I have a really good Avalon CBD so it's got that Avalon strengths outdoors and beautiful purple buds but a lot more for people who are like maybe hearing you for the first time can you tell us some more about Avalon I know it's one of your like flagship names but yeah that was actually the very first strain I bred back in Canada and I believe was 95 96 it was an Afghani hash plant crossed with the Grigio Blueberry that we had back then in the mid late 90s and I did that first across outdoors and I've been selectively inbreeding it now for almost 30 years so but I did all my selecting in that genetics outdoors on Vancouver Island in on a rainy rainy windy part of the island so it's the first few years when I was doing the selecting of what I was breeding with you know you get that first year you lose half of it to bud rot but then you breed the best plants that made it through it and after several years or a decade of me selectively breeding outdoors it just became so resistant to molds and fungus and it can sit out in the rain for two weeks and you're not going to get a lot of bud rot and it'll put up with the wind and that's what I bred it for it's just something that's for the West Coast where it's wet all the time so and I have a few of the hybrids with that are just amazing my blue dynamite which is the Avalon crossed with the Grigio Dynamite same thing and it's the buds right now are just the most picture perfect blue buds and that's the one seed that's been flying off the shelves for us right now and everybody once they grow they're coming back for more so if anybody wants to try any one strain of ours right now that wants them to be impressed try our blue dynamite that's a really popular one too I got to smoke a bunch of the Avalon space recently yeah it's nice bro it does have a lot of this what people don't realize is that like the sweet pink grapefruit to me at least does resemble Skittles a lot in the Terp profile and it was already existing long before Skittles it's very similar in the Terp profile almost identical in many ways and I wouldn't be surprised if they were related in some way shape or form because it's so similar and sometimes it's not just like the popular name go find out what's in it go talk to people who've been around for a long time and you'll learn about this kind of stuff yeah there's a lot of yeah who knows what's in a lot of this people rename things all the time yeah but it was super nice dude like it did look like you're saying it looked like indoor bud grown outdoor which is it's hard to do and I like to recommend your stuff for people in coastal climates in the US because it is so hardy and mold resistant and it's proven and true for that yeah exactly cool so the Avalon space that you tried was that indoor or outdoors outdoor Mendo oh sweet sweet yeah our buddy is a big fan of yours so he's always growing some of some of your stuff yeah that's actually a strain we have quite a few seats in that still sitting there not too many people bought it because I'm shitty at marketing so I haven't really told that to me but they're only available in regular seats I believe or maybe I'm wrong it's been a while I think those were regs that he grew it's just regular on your website what was the space that what was that one it was just another variety from a big medical club in British Columbia back country harvest they had 11 acre farm and they have did a massive fino hunt and this is one of the cuts off of their farm yeah they had really impressive farm up in the mountains how would you describe it the cut the cut it's very it's it's silvery and more of a lime green not a deep dark green really silvery I guess not the flavor would come from the Avalon more the space didn't have a lot of intense flavor on its own but extremely resinous and light green flowers and that's what did get the hybrid with the Avalon Avalon brought the flavor to that that's the first thing I could taste was sweet pink grapefruit I was like oh yeah I know this one oh there's some grapefruit a lot of grapefruit hmm really nice is there anything else you want to highlight as far as your strains right now well actually yeah the our red truffles okay that's that's a Colombian red oh okay yeah yeah truffles and it's one variety that out of all my variety people ask me about for making hash or full melt bubble the red truffles that resin just melts in your hand and the tricomes separate really easy for making bubble if you want to make a lot of bubble and and that's one that I'm going to do as soon as I can do a big phenol hunt for it here just for bubble hash production and they're large large plants so yeah and yeah the Colombian red obviously the sativa in there but I don't know actually that one probably about about nine and a half weeks somewhere between nine and ten depending on the fertilizers you use yeah what was looking through the offspring like for that because that's kind of the you know the two parents I imagine could hardly be less similar yeah well you guys know I know my Colombian red but this was just a really good cutting on it from the medical company in Canada that truffles and you guys probably know way more than what the truffles than I do I just know it dumped hash and I did the hybrid and it dumped even more hash excellent yeah I don't know the actual truffles much of the history I'm sure you guys I actually don't know much other than it's a cookies variety of some sort in bread cookies of some sort yeah yeah something like that me neither I don't know exactly what's in it you know I haven't kept myself up to date on a lot of what's going on in the US for the genetics because it just seems like it changes so fast but it's mostly the same genetics being renamed in bread it's the last 12 years ever since yeah I I quit paying attention it's just work on my own stuff yeah since I have the show I've had to pay more attention to it because people always ask about these certain things but yeah I just don't really I'd rather learn about the old BC strains from guys like you you know what I mean and talk about that as it goes to the new new yeah I'm down here and everybody's asking me about all these North American strains and stuff like that I couldn't care less I'm like well where's your local stuff yeah right what's the Brazilian I want to try some Paraguay we eat some Bolivian and some Peruvian stuff and they just want to talk about it I want to ask you more about like what's your excess like to genetics like that you know from like you said Paraguay yeah actually I know quite a few people here who work within different countries here with that so I actually built up a nice little collection of stuff down here so once I get my license I'll be able to try a lot of this local stuff out yeah that's cool before I do anything too serious I have to make sure all my papers are in order now so for sure don't want to go through that again when you are back up and running are you documenting this stuff are you sharing it online are you giving an Instagram account sharing pictures or anything very little right now because it's still under investigation and actually the police have my Instagram so they have my phone and my car and all kinds of things so I'm still in the middle of the process right now I know it's all going to work out okay it's just going to be a process but afterwards assuming once you are clear of that stuff do you think you will be documenting a lot of this definitely very exciting so yeah I got two different Instagram pages my Canadian one J generation at Instagram and then next generation Latin American edition so is there anything else you want to get in before we close it up and let you get back to your Dengue yeah feeling a little ill here with the mosquitoes what time is it there in California it's 5 10 p.m. oh okay we're sitting about 10 p.m. here now so yes I figured yeah is there anything else you wanted to plug though not really we have right now we've got a few new auto flowers on our website right now for some specials on for springtime tell anybody to give my partner a call he's always good for giving good deals he's a great dude really friendly too don't hesitate to call him is there a number you can give out here I don't have it off my heart we'll put it in the description add it in the link yeah we can do that that sounds good and I'll keep you guys updated on any other changes in the adventures yeah please do we need to hear about it I wanted to get you on as soon as I heard about it yeah we need to talk about this and see if we can't get something going yeah well hey I appreciate it always man it's a pleasure having you and send my love to Ken and everyone out there and stay in touch brother it's been a pleasure good luck with the whole process dude good luck alright keep me posted I'm gonna end it alright take care guys alright peace hey everyone thank you for listening to the show we also have at the end of today the announcement for our contest winners so we randomly selected people using what is that called verification.org and for the Instagram crowd we have it's Friday 04 that won the contest for the followers on Instagram and we have Sirius Smoke who won for the the contest in discord so get at me either on IG or discord if either you guys are on there well I know Sirius is on there because obviously he won so get a hold of me we'll get you your stuff for the contest I really appreciate everyone who participated I would have liked to see more people follow on Instagram but is what Instagram sucks so yeah I think that's it other than that go check out riotseeds.com where you can get your spray you can find Siege from all the syndicate members that are currently on there all kinds of goodies go join the discord patreon we're doing all kinds of rad stuff there right now even more has been added lately you might see a lot of strains pop up there you won't see pop up anywhere else that you can grab etc so go check it out patreon.com forward slash breeder syndicate and with that wish you a good week and next week is a banger absolute banger with the can of cabana guys be it d-man, skiddie and housey so like yeah I'm stoked man it was such a good recording and I can't wait to bring it to you guys and with that we'll see you next week cheers want to sit at the table with the syndicate check out our patreon and our link or description below our merch site is officially live we have all sorts of shirts, hoodies to sort you out and shipping is super fast and most importantly the quality is top notch I've been saving old designs for years for this purpose so please check it out syndicategear.com we also have an underground syndicate discord where we get together and solve old strain history together daily it's an amazing community of learning away from IG and it's an amazing resource for old catalogs and knowledge we hope you join our union of breeders and growers come check it out


All right, just a regular night at the Adafruit factory.  One of the things that we did change though is we turned this into a nursery. Oh, there's a baby here. Baby has all the baby stencils she needs. And she also has a bunch of things to work on. Baby's first reels. It's almost time to go. Baby, stop feeding and load the feeders.


The federal minimum wage today is only $7.25 an hour. It hasn't been raised in over 10 years. In that time, its value has gone down 18% if you adjust for inflation. The minimum wage for tipped workers is even lower, $2.13 an hour. And that hasn't been raised in 30 years. How do we fix this? 1. Raise the minimum wage to $15 an hour. That will increase pay for 60% of workers living in poverty. 2. Abolish the tipped minimum wage. Service workers deserve to be paid a real wage. 3. Automatically increase the minimum wage with inflation. So this never happens again.


As we discussed in our last video, Adobe Acrobat Reader is a wonderful app that helps you organize, read, fill, sign and send PDF files. Let's together explore what other amazing tools we can find and use. Once you have installed the app on your device, tap on it to open. You will see a brief presentation of what the app can do for you. Once done, tap on Get Started. Now you will get to see the home icon up on the left-hand side corner of your screen. It will show you a drop-down menu that will help you to find your PDF files more easily. The first option is Recent. This one is especially useful to find a PDF you have just checked or the last document you viewed through the app. Next one is Local. This means that every single PDF saved on your device will appear here. Next we have the Document Cloud option. This is a cloud-based service from Adobe to store and access PDFs from pretty much everywhere. Let's say you don't have access to your computer and you really need to fill out an important PDF file. That's when Document Cloud becomes so handy, since you can view and edit PDF files from your computer through your mobile device. Finally, there's Dropbox, which is also a cloud-based service that stores any kind of files. This is a perfect option especially if you already have a Dropbox account. On our next video, we will show you how to link your Dropbox account with Adobe Acrobat Reader. These were just a few tools you'll find on Adobe Acrobat Reader. If you like it, give us a big thumbs up. Subscribe to our channel and wait for a lot more videos to master Adobe Acrobat Reader.


The one thing is really great about this conference is the shepherding session. So there is this person, this is a professor in Spain. And she is also an airline programmer. So it just fits directly to it. So I share my slideshow of how I'm going to present. And she give me a more structured to my talk. So you can talk about these things. Let's take the slides. So I made some modifications. So yeah, thanks to Laura, whatever though, I able to have a much better presentation.


This paper proposes a new method for removing low vegetation from UAV photogrammetric data. It uses multi-scale elevation variation coefficients to identify differences between terrain and vegetation regions, and then performs threshold segmentation to separate out the vegetation points. The result is a more accurate DEM with fewer errors. This article was authored by Justin Fan, Wendai, Bo Wang, and others.