Call vi from main vi

Hi
I build a vi in  labview and I called it 1.vi , then I open new vi and called it 2.vi , then I build main vi , this main contain two bottom  one called " called 1.vi " the another called " called 2.vi "
What I want if I press on bottom " called 1.vi " this bring 1.vi file and appear on screen in main VI  ,, who can I do that
If some one have example I would be very thankful to him
wisam

Hey wisam,
As attachmend you will find a little example, there may (will) be better solutions, it's only a suggestion resulted from clickling a little bit within LabVIEW. It's in 8.2
Christian
Attachments:
suggestion.zip ‏23 KB

Similar Messages

  • Calling servlets from main()?

    Hi
    I would like to know that while calling servlets from another class having main(), how can we set the type of request i.e. put, post or get?
    Thanks

    use the method - setRequestMethod( "POST") of HttpURLConnection for setting the method to POST.Similarly for other methods..
    You could find [url http://java.sun.com/developer/JDCTechTips/2004/tt0210.html#2]this useful

  • Custom component calling function from main.mxml

    I have a main.mxml that has the following function in it:
    public function SubChooseField(evt:Event):void{
    Alert.show( "Sub has been chosen" );
    main.mxml also places the following custom component:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:ComboBox xmlns:mx="
    http://www.adobe.com/2006/mxml"
    width="180" close="parent.SubChooseField(event)">
    <mx:dataProvider>
    <mx:Object data="1" label="choice 1 />
    <mx:Object data="2" label="choice 2" />
    <mx:Object data="3" label="choice 3" />
    </mx:dataProvider>
    </mx:ComboBox>
    I want it so that when you chose one of the options in the
    comboBox, it will call the function SubChooseField in the
    main.mxml. But when I compile this, no matter what i try, i get the
    error:
    Error: Call to a possibly undefined method SubChooseField
    through a reference with static type my_custom_opponent.
    OR if i change the codeand remove the 'parent' to say:
    close="SubChooseField(event)"> i get error:
    Error: Call to a possibly undefined method SubChooseField.
    any help much appreciated.

    Rather than trying to use parent, using events might help
    here. In your main mxml file, just listen for the change event that
    is dispatched from your custom component. Since it is a ComboBox
    component, it automatically dispatches this event. If your
    component was more complex, you would need to dispatch a custom
    event.
    If your custom component was named CustomCombo, then the mxml
    in your main file would look something like this:
    <ns1:CustomCombo id="cb" x="70" y="39" width="160"
    change="SubChooseField(event)"/>
    Vygo

  • Call subscreen from main screen

    Dear all,
    I have a subscreen and from that subscreen i am calling another normal screen using 'call screen' statement. After doing some manipulation in the normal screen i want to go back to the subscreen on clicking 'BACK' button. i tried 'leave to screen' and 'call screen' in PAI of normal screen but it is not working. how to come back to the subscreen again?
    Thanks in advance,
    Aswin.

    Dear Friend,
    You include a subscreen screen using the CALL SUBSCREEN statement in the flow logic of the main screen.
    To include a subscreen screen in the subscreen area of the main screen and call its PBO flow logic, use the following statement in the PBO event of the main screen:
    This statement assigns the subscreen screen with number <dynp> to the subscreen area called <area>. With <prog> you must specify the ABAP program in which the subscreen screen is defined. If it does not find a corresponding subscreen screen, a runtime error occurs. The PBO flow logic of the subscreen screen is also included at the same point. This can call PBO modules of the ABAP program in which the subscreen screen is defined. At the end of the subscreen PBO, the global fields from the program are passed to any identically-named screen fields in the subscreen screen. The PBO flow logic of the subscreen screen can itself include further subscreens.
    The name <area> of the subscreen area must be entered directly without inverted commas. You can specify the names <prog> and <dynp> either as literals or variables. If you use variables, you must declare and fill identically-named variables in the ABAP program. The screen number <dynp> must be 4 characters long. If you do not assign a subscreen screen to an area, it remains empty.
    PROCESS BEFORE OUTPUT.
      CALL SUBSCREEN <area> INCLUDING <prog> <dynp>.
    find the Below Example Code.
    DATA: ok_code TYPE sy-ucomm,
          save_ok TYPE sy-ucomm.
    DATA: number1(4) TYPE n VALUE '0110',
          number2(4) TYPE n VALUE '0130',
          field(10) TYPE c, field1(10) TYPE c, field2(10) TYPE c.
    CALL SCREEN 100.
    MODULE status_100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE fill_0110 OUTPUT.
      field = 'Eingabe 1'(001).
    ENDMODULE.
    MODULE fill_0120 OUTPUT.
      field = field1.
    ENDMODULE.
    MODULE fill_0130 OUTPUT.
      field = 'Eingabe 2'(002).
    ENDMODULE.
    MODULE fill_0140 OUTPUT.
      field = field2.
    ENDMODULE.
    MODULE cancel INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE save_ok INPUT.
      save_ok = ok_code.
      CLEAR ok_code.
    ENDMODULE.
    MODULE user_command_0110 INPUT.
      IF save_ok = 'OK1'.
        number1 = '0120'.
        field1 = field.
        CLEAR field.
      ENDIF.
    ENDMODULE.
    MODULE user_command_0130 INPUT.
      IF save_ok = 'OK2'.
        number2 = '0140'.
        field2 = field.
        CLEAR field.
      ENDIF.
    ENDMODULE.
    MODULE user_command_100 INPUT.
      CASE save_ok.
        WHEN 'SUB1'.
          number1 = '0110'.
        WHEN 'SUB2'.
          number1 = '0120'.
          CLEAR field1.
        WHEN 'SUB3'.
          number2 = '0130'.
        WHEN 'SUB4'.
          number2 = '0140'.
          CLEAR field2.
      ENDCASE.
    ENDMODULE.
    The screen flow logic for screen 100 is as follows:
    PROCESS BEFORE OUTPUT.
      MODULE status_100.
      CALL SUBSCREEN: area1 INCLUDING sy-repid number1,
                      area2 INCLUDING sy-repid number2.
    PROCESS AFTER INPUT.
      MODULE cancel AT EXIT-COMMAND.
      MODULE save_ok.
      CALL SUBSCREEN: area1,
                      area2.
      MODULE user_command_100.
    The screen flow logic of subscreen screens 110 and 130 is:
    PROCESS BEFORE OUTPUT.
      MODULE fill_0110|0130.
    PROCESS AFTER INPUT.
      MODULE user_command_0110|0130.
    The screen flow logic of subscreen screens 120 and 140 is:
    PROCESS BEFORE OUTPUT.
      MODULE fill_0120|0150.
    PROCESS AFTER INPUT.
    When you run the program, a screen appears on which subscreens 110 and 130 are displayed. The pushbuttons on the main screen allow you to choose between two subscreen screens for each screen area. The pushbuttons on the subscreens allow you to transfer the data from subscreens 110 and 130 to subscreens 120 and 140.
    Since the same field name FIELD is used on all subscreens, the identically-named ABAP field is transferred more than once in each PBO and PAI event of the main screen. For this reason, the values have to be stored in the auxiliary fields FIELD1 and FIELD2 in the ABAP program.
    The pushbuttons on the subscreen screens have different function codes, and they are handled normally in an ABAP field. If the function codes had had the same names, it would again have been necessary to use auxiliary fields.

  • How to add button inside move clip and call it from main timeline?

    Hi,
    On the main timeline I  have a movie clip called clock_mc and playBtn
    playBtn is  placed in the center of clock_mc
    When you press playBtn clock_mc starts playing
    playBtn.addEventListener(MouseEvent.CLICK, playClock);
    function playClock(event:MouseEvent):void
        if (event.target == playBtn)
            clock_mc.play();
            playBtn.visible = false;
            trace ("play button was clicked");
    This is working fine for me.
    But I want to add replayBtn to the last frame of clock_mc and set up the function on main Timeline.
    Another words when the clock_mc rich last frame you see replayBtn.
    code example:
    replayBtn.addEventListener(MouseEvent.CLICK, playClock);
        if (event.target == replayBtn)
            clock_mc.play();
            replayBtn.visible = false;
            trace ("replay button was clicked");
    I've tryed to placed the replayBtn on the stage on the main timeline and I've set it up to replayBtn.visible = false;
    And then I add replayBtn.visible = true; to last AS frame of clock_mc but it wont work
    Even when I put the button physically to the last frame of clock_mc it will not work either.
    Please help

    I've solved the problem:-)
    I've set replayBtn.visible = false; on first frame of clock_mc
    and  replayBtn.visible = true; at the last frame
    and than as you sugested I'v add:
    clock_mc.replayBtn.addEventListener(MouseEvent.CLICK, replayClock);
    function replayClock(event:MouseEvent):void
            clock_mc.play();
            trace ("replay button was clicked");
    I couldn't see replayBtn at the firs stage because I have clockTween assosiated with clock:
    clockTween = new Tween(clock_mc, "x", Regular.easeOut, -469,438, .5, true);
    and I had replyBtn in the wrong place so when clock_mc was coming up on the stage replayBtn was on the left side of the stage :/
    Now I have to solve only one thing.
    Maybe you would have any suggestions please.
    I've set up stop(); in a first frame of clock_mc
    that when you see clock_mc sliding in it has to wait for playBtn to be clicked
    because I have two tween:
            clockTween = new Tween(clock_mc, "x", Regular.easeOut, -469,438, .5, true);
            playTween = new Tween(playBtn, "x", Regular.easeOut, -720,514, .5, true);
            playBtn.visible = true;
    so when you click on playBtn:
    function playClock(event:MouseEvent):void
        if (event.target == playBtn)
            clock_mc.play();
            playBtn.visible = false;
            trace ("play button was clicked");
    everythink is working fine except when I clik on replayBtn it play for I sec because there is stop(); on the first frame of clock_mc

  • Calling Sub from Main

    I am attaching a full folder that contaions a small project with three VI s. What I want to do is this : Run the MAIN.vi. Choose the required sub.vi to load and click Auto Load. The Main FP is closed and the Sub VI loads.
    All working fine in design mode. But not working when EXE is built. ( No hardcoded path refernces are used )
    Unable to find out why - for sure  there seems to be a problem with the file paths . And I am taking care to strip one more level when in RunTime mode. Still it does not work. Not sure why - any ideas welcome. 
    Project done in LV 2012.
    Raghunathan
    LV2012 to Automate Hydraulic Test rigs.
    Solved!
    Go to Solution.
    Attachments:
    Simple LV Project.zip ‏318 KB

    Yamaeda wrote:
    The additional strip is needed if you access files _outside_ of the .exe. For example a .ini in the install folder. 
    If you check a VI path it includes the .exe as a "virtual folder", thus you'll need an extra strip.
    But do be very careful with that.  Starting in LabVIEW 2009, the executables were a zip-like format, meaning that the folder heirarchy is maintained.  In LabVIEW 8.X, the executable was a flat format.  So the double strip was needed to get the folder of the executable.  In modern systems, you should be using the Application Directory primitive instead of the VI Path when looking for files outside of the executable (like ini files).  When in the development environment, the Application Directory gives the folder in which the project file is.  So that primitive is useful in both developement and run time environments.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Calling function from Main.as

    I have a buttons class I would like to access but not sure of
    proceedure. Here is the Main.as
    and here is the button class
    this is actions layer:
    Thanks
    Steve

    var buttons:Buttons = new Buttons(parameterGoesHere);

  • Simply way to make sub vi and call it form main vi

    I'm a beginner and have major problems to make a sub vi and call it from main vi. I'm going to do a save dialog where is extra info for my saving and want to call dialog from main vi and after that save info to a file or database. I want that save dialog appears after i press button. I attach sub vi where is no functionality yet.
    Attachments:
    save_dialogsub.vi ‏21 KB

    The first step is to connect the controls and indicators that you want to pass information to and from your main vi.
    You right-click on the icon at the top right corner of the Front Panel and select "Show Connector". Typically put inputs at the left and outputs at the right side of the connector pane. Save it.
    Open the main vi. Go to the block diagram. Click on "Select a vi" inside the Functions Palette. And choose the sub vi you prepared. Then wire it up inside your main vi.
    -JLV-

  • DLL Wrapper works when functions called out of main(), not from elsewhere?

    Hello all,
    I am currently trying the JSAsio wrapper out ( http://sourceforge.net/projects/jsasio )
    Support on this project is nearly unexisting and a lot of people seem to complain that it doesn't work well.
    It works very nicely here, I wrote a few test classes which called some functions (like playing a sound or recording it) and had no problems whatsoever.
    These test classes were all static functions and ran straight out of the main() method and printed some results to the console.
         public static void main(String[] args)
              boolean result = callFunction();
              .. end..
         public static boolean callFunction()
              initASIO();
              openASIOLine();
              return true;
         }The results were all great!
    Then I tried to implement these test classes into my swing-based applications. So I want to call these same functions, as in the test classes, as a result of any user action (for example, selecting the asio driver in a combobox) But then these asio driver functions just stop to work. I get errors saying that the ASIO driver is not available. (meaning that the dll wrapper loads the wrong asio driver or can't load one at all)
    The library path and classpath are all set correctly, exactly the same as the test classes. Even copied the test code word for word in to my swing applications but it still will not work. I am calling these functions in a new Thread, and even put them in a static methods to try and get that working. When calling these asio methods from the main() method AFTER I set up my components gives me the desired results as well. But as soon as I call these same methods (which are in the same class) from a swing event, it fails;
    public class ASIOTest
         public static void main(String[] args)
              ASIOTest test = new ASIOTest();
              test.callFunction(); // <-- WORKS
         public ASIOTest()
              initializeComponents();
         private void initializeComponents()
              frame = new JFrame();
              choices = new JComboBox();
              choices.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent event)
                     // user made selection
                    new Thread(
                            new Runnable() {
                                public void run() {
                                    try
                                         callFunction(); // <-- DOES NOT WORK
                                    catch (Exception e)
                                        e.printStackTrace();
                            }).start();
         public void callFunction()
              initASIO();
              openASIOLine();
    }Is there something fundamental I am missing here?
    For what reasons can an application which uses JNI functions go wrong when working in a swing enviroment? (and out of a static context, although this does not seem to make any difference, eg. when calling these functions from static methods inside another class, inside a new thread when the user has generated an event)
    I am hoping someone could point me in the right direction :-)
    Thank you in advance,
    Steven
    Edited by: dekoffie on Apr 21, 2009 11:11 AM
    Edited by: dekoffie on Apr 21, 2009 11:16 AM

    jschell wrote:
    Two applications.
    And you probably run them two different ways.
    The environment is different so one works and the other doesn't.Thank you for your fast reply!
    Well, I am running the "updated" version from the same environment; I copied the jframe, and a jcombobox into my original test class which only ran in the java console. Consider my second code example in my original post as the "updated" version of the first code example. And as I pointed out, it works fine when I call the jni functions in the main method, but not when I call it from inside the ActionListener.
    Or am I again missing something essential by what you mean with a different environment? The classpath and the working directory is exactly the same, as is the Djava.library.path option. :-)
    Thanks again!

  • Can I disable "Slide to Call" from main screen?  Forced to take call on accidental swipe

    I have an iPhone 4s with iOS7 and I seriously do not like the "Slide to Call" feature from the main screen and would like to disable it.  I would still like to see notifications on the home screen.  I have accidentally swiped a call amongst other notifications and NO FUNCTION BUTTONS POP UP TO LET ME CANCEL THE CALL!.  Seriously.  A blank screen.  I make an accidental swipe and now have to talk to someone I didn't want to talk to at the time.
    Let me better describe the situation.
    The 4s phone was locked.  I had received a call and a text which were displayed on the home screen.  I attempted to swipe the text, but hit the call.  NO BUTTON, I had a blank screen and the call was going off in the 4s ear piece.  I had to take the call or look totally stupid.  I was just so angry that there was no way for me to end the call.  In the second after the connection was made, after having held it to my ear and moved it away a few times, the buttons (End, speaker, etc) finally appeared. 

    You can always press the Sleep/Wake button.
    If you have the iPhone ear-phones on, you can press the the remote button also.

  • Call function, pass value, access variable in movieclip class from main stage

    i am new to flash as.
    I got quite confused on some problems. as the function here
    is quite different from c and asp.net.
    I have a movieClip named MC, and it's enabled with action
    script, with the class name MC_Rectangle
    and a Stage.
    I override the MC_Rectangle class file in a mc_rectangle.as
    external file.
    here is the code:
    package{
    import flash.display.*;
    import flash.events.*;
    public class MC_Rectangle extends MovieClip {
    var sequence:int = new int();
    function setSequence(data:int):void{
    sequence = data;
    function addSequence():void{
    sequence ++;
    I have new a object in the main stage var
    mc_rect:MC_Rectangle = new MC_Rectangle()
    question:
    in main stage:
    1. how can i access the variable "sequence" in "mc_rect"
    2. how can i pass parametre from main stage to mc_rect via
    function setSequence(data:int)?
    3. how can i call the function in addSequence() in mc_rect.
    in asp.net, i usually use mc_rect.sequenct,
    mc_rect.setSequence(data), mc_rect.addSequence() to achieve my
    goals......
    btw, can function in mc_rect return out result to main stage?
    thanks in advance.

    Your as-file must be named MC_Rectangle.as (same upper/lower
    case as in the Class name)
    Ad 1) You have to declare sequence as a public property
    "public var sequence;" or - better - define a getter-function for
    sequence.
    Ad 2) mc_rect.setSequence(8); e. g. (you must write "public"
    in the Class-declaration of setSequence)
    Ad 3) mc_rect.addSequence(); e. g. (you must write "public"
    in the Class-declaration of addSequence)
    ... and yes, your methods can return a value: Replace "void"
    with the proper data type (int, String, ...) and place a "return
    myNumber;" or the like in the method's body.

  • Sub VI to enter database data taking more time when calling from main VI

    Hi All,
    I created a sub vi to enter data to a new database, after reading from another database. when i executed that sub vi alone, it took only 2 minutes to enter 20000 records. But when i called that sub VI from my main VI, its taking 35 minutes to enter 20000 records. 
    my maiin vi has another while loop running parallelly which will perform some other operations. How to handle memory in this case? i mean when i call my sub vi from main vi, i need to give complete processor memory for that sub vi. is it possible?
    please help. thanks in advance.
    Sooraj

    Hi Oliver,
    in your example the numeric data is passed from sub-vi to main only when sub-vi terminates, this is what it's supposed to be when you fetch the data from the connector output of a sub-vi.
    You can use queues function to exchange data between sub-vi and main.vi; take a look at the example Message Logging with Named Queue.vi.
    An alternative method is passing to sub-vi a reference of an indicator (or control) and update its value on the fly.
    See example.
    Alberto
    Attachments:
    passing_data_from_sub-vi.llb ‏35 KB

  • JNI calls only work if sent from main thread?!?

    Hi,
    I searched through the forum for a couple of hours now, and found that a lot of developers seem to have problems with JNI and threads. However, I couldn't find a solution to my problem so far...hope you can help!
    We need to send requests to a DDE Server from our Java application. For that reason, we implemented a very small DLL using Delphi, which calls the DDE Server and returns the result as a string. Using JNI, we call this DLL from Java.
    Everything works fine, as long as we call the DDE Server (via JNI and the DLL) from the main thread of the Java application. But everytime we call it from another Java thread, our DDL reports that it can't get a connection to the DDE Server. This is especially awkward if you want to make calls as a reaction to GUI events, since then the call is sent by the Event Dispatch Thread of the Java runtime.
    This does not seem to be a multi-threading problem, since we do never send multiple requests at the same time. It simply depends on the thread, from which the call is sent.
    Any hints are appreciated very much.
    Thanks!
    Thilo

    We are a step further now...thus the problem to be solved changed a little bit.
    The former assumption, that connecting to the DDE server does only work from the main thread was false. It only seemed like that, because we called System.loadLibrary() to in the main thread to load the DLL . In fact, the connection to the DDE server works from any thread - you just have to make sure that System.loadLibrary() is invoked in this same thread.
    This means: if System.loadLibrary() is invoked in the Event Dispatch Thread, we can call the DDE Server from this thread, which is what we primarily wanted to do. So our problem is solved.
    Anyway, I made some more tests to find out, what happens if I start multiple threads, with each of them calling System.loadLibrary(). The result was, that only the first thread is successful. This means: the first thread, which loads the DLL is the only thread that is able to connect to the DDE server. All other threads won't get a connection.
    What could be the reason for that?

  • Calling a function from Main()

    I have a written a function which I want to call in the Main method:
    private static GetExcel()
    DataTable dt = getData();
    System.Data.DataView view = new System.Data.DataView(dt);
    System.Data.DataTable selectedCol = view.ToTable("selectedCol", false, "OWS_PName");
    StreamWriter wr = new StreamWriter(@"C:\\Sunny\\Directory.csv");
    try
    //Write Column names to Excel
    for (int i = 0; i < selectedCol.Columns.Count; i++)
    if (selectedCol.Columns[i].ToString().ToUpper().Contains("OWS_"))
    wr.Write(dt.Columns[i].ToString().ToUpper().Replace("OWS_", "") + ",");
    wr.WriteLine();
    //write rows to excel file
    for (int i = 0; i < (selectedCol.Rows.Count); i++)
    for (int j = 0; j < selectedCol.Columns.Count; j++)
    if (selectedCol.Rows[i][j] != null)
    if (selectedCol.Rows[i][j].ToString().Contains(";#"))
    wr.Write(Convert.ToString(selectedCol.Rows[i][j]).Replace(";#", "") + ",");
    else
    wr.Write(Convert.ToString(selectedCol.Rows[i][j]) + ",");
    else
    wr.Write("\t");
    //go to next line
    wr.WriteLine();
    //close file
    wr.Close();
    catch (Exception ex)
    throw ex;
    What should I return here and how should I call it in Main()

    Hi,
    As this question is more relate to C#, I suggest you post it to Visual C# Forum, you will get more help and confirm answers from there.
    http://social.msdn.microsoft.com/Forums/en-US/home?forum=csharpgeneral
    Best regards
    Patrick Liang
    TechNet Community Support

  • Problem when calling session bean from main.

    Hi everyone
    I get the following error when calling a session bean from main(String args[]).
    Sep 3, 2008 9:11:13 AM com.sun.enterprise.appclient.MainWithModuleSupport <init>
    WARNING: ACC003: Application threw an exception.
    java.lang.NullPointerException
    at databasetest.Main.main(Main.java:26)
    Here is my code beneath.
    I'm using netbeans and glassfish application server.
    Everything is in the same project, called DatabaseTest, I also have deployed the application before running the client.
    I'm running the client as follows, right click on the DatabaseTest-app-client and select run.
    The client:
    package databasetest;
    import com.test.UsersFacadeRemote;
    import javax.ejb.EJB;
    import com.test.Users;
    public class Main {
        @EJB
        private static UsersFacadeRemote usersFacade;
        public static void main(String[] args) {
            Users users = new Users(12, 34);
            usersFacade.create(users);
    }The remote facade I'm calling:
    package com.test;
    import java.util.List;
    import javax.ejb.Remote;
    @Remote
    public interface UsersFacadeRemote {
        void create(Users users);
        void edit(Users users);
        void remove(Users users);
        Users find(Object id);
        List<Users> findAll();
    }The stateless bean:
    package com.test;
    import java.util.List;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    @Stateless
    public class UsersFacade implements UsersFacadeRemote {
        @PersistenceContext
        private EntityManager em;
        public void create(Users users) {
            em.persist(users);
        public void edit(Users users) {
            em.merge(users);
        public void remove(Users users) {
            em.remove(em.merge(users));
        public Users find(Object id) {
            return em.find(com.test.Users.class, id);
        public List<Users> findAll() {
            return em.createQuery("select object(o) from Users as o").getResultList();
    }

    looks like you're banging your head against the same brick wall as [I have done|http://forums.sun.com/thread.jspa?forumID=13&threadID=5317110] and [others have in the past|http://forums.sun.com/thread.jspa?forumID=136&threadID=5259913] if that's any consolation.
    Funny thing is, mine did actually work in the debugger but not when running!
    Strange thing that.
    I did initially interest someone from the developers but they couldn't really help, ended up saying : try instantiating your beans the EJB 2.1 way and see where that gets you. Yes that works but they promised us "hey no more dopey xml deployment descriptors just some cool annotations" didn't they?
    I've got the feeling were' missing something really obvious!
    Edited by: sebthebike on 03-Sep-2008 12:21

Maybe you are looking for