12cdde11355e7c249e83a8b7aaabae5977bbc3e49Phil Goodwinpackage com.xtremelabs.robolectric.tester.android.view;
238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richardimport android.content.Context;
438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richardimport android.content.res.Configuration;
538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richardimport android.graphics.drawable.Drawable;
638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richardimport android.net.Uri;
738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richardimport android.os.Bundle;
8f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.InputQueue;
9f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.KeyEvent;
10f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.LayoutInflater;
11f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.MotionEvent;
12f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.SurfaceHolder;
13f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.View;
14f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.ViewGroup;
15f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultzimport android.view.Window;
1684c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Mooreimport android.view.WindowManager;
170e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport com.xtremelabs.robolectric.Robolectric;
1838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
1938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richardpublic class TestWindow extends Window {
2038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    public int flags;
2138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    public int requestedFeatureId;
2238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    public int featureDrawableResourceFeatureId;
2338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    public int featureDrawableResourceResId;
24ba755d49ba6df9aa094b7c272350ddf10d8c060cPhil Goodwin & Tyler Schultz    public int softInputMode;
2584c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore    private TestWindowManager windowManager;
2638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
2747de2ab70714cb6d5f08220f016e527b6fe25df5Christian Williams & Ryan Richard    public TestWindow(Context context) {
2838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        super(context);
2984c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore        windowManager = new TestWindowManager();
3038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
3138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
3238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean requestFeature(int featureId) {
3338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        this.requestedFeatureId = featureId;
3438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return true;
3538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
3638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
3738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setFlags(int flags, int mask) {
38adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams        this.flags = (flags & ~mask) | (flags & mask);
3938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
4038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
4138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void addFlags(int flags) {
4238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        setFlags(flags, flags);
4338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
4438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
4584c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore    @Override
4684c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore    public WindowManager getWindowManager() {
4784c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore        return windowManager;
4884c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore    }
4984c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore
5038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean isFloating() {
5138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
5238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
5338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
541bd81c8df1eab3bc9a15cfe6f8c8a702f02d77f9Phil Goodwin & Tyler Schultz    @Override public void takeSurface(SurfaceHolder.Callback2 callback2) {
551bd81c8df1eab3bc9a15cfe6f8c8a702f02d77f9Phil Goodwin & Tyler Schultz    }
561bd81c8df1eab3bc9a15cfe6f8c8a702f02d77f9Phil Goodwin & Tyler Schultz
571bd81c8df1eab3bc9a15cfe6f8c8a702f02d77f9Phil Goodwin & Tyler Schultz    @Override public void takeInputQueue(InputQueue.Callback callback) {
581bd81c8df1eab3bc9a15cfe6f8c8a702f02d77f9Phil Goodwin & Tyler Schultz    }
591bd81c8df1eab3bc9a15cfe6f8c8a702f02d77f9Phil Goodwin & Tyler Schultz
6038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setContentView(int layoutResID) {
6138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
6238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
6338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setContentView(View view) {
6438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
6538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
6638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setContentView(View view, ViewGroup.LayoutParams params) {
6738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
6838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
6938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void addContentView(View view, ViewGroup.LayoutParams params) {
7038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
7138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
7238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public View getCurrentFocus() {
7338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return null;
7438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
7538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
7638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public LayoutInflater getLayoutInflater() {
7738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return null;
7838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
7938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
8038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setTitle(CharSequence title) {
8138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
8238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
8338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setTitleColor(int textColor) {
8438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
8538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
8638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void openPanel(int featureId, KeyEvent event) {
8738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
8838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
8938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void closePanel(int featureId) {
9038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
9138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
9238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void togglePanel(int featureId, KeyEvent event) {
9338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
9438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
9538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean performPanelShortcut(int featureId, int keyCode, KeyEvent event, int flags) {
9638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
9738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
9838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
9938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean performPanelIdentifierAction(int featureId, int id, int flags) {
10038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
10138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
10238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
10338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void closeAllPanels() {
10438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
10538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
10638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean performContextMenuIdentifierAction(int id, int flags) {
10738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
10838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
10938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
11038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void onConfigurationChanged(Configuration newConfig) {
11138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
11238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
11338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setBackgroundDrawable(Drawable drawable) {
11438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
11538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
11638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setFeatureDrawableResource(int featureId, int resId) {
11738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        featureDrawableResourceFeatureId = featureId;
11838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        featureDrawableResourceResId = resId;
11938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
12038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
12138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setFeatureDrawableUri(int featureId, Uri uri) {
12238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
12338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
12438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setFeatureDrawable(int featureId, Drawable drawable) {
12538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
12638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
12738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setFeatureDrawableAlpha(int featureId, int alpha) {
12838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
12938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
13038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setFeatureInt(int featureId, int value) {
13138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
13238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
13338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void takeKeyEvents(boolean get) {
13438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
13538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
13638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean superDispatchKeyEvent(KeyEvent event) {
13738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
13838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
13938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
14038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean superDispatchTouchEvent(MotionEvent event) {
14138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
14238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
14338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
14438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean superDispatchTrackballEvent(MotionEvent event) {
14538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
14638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
14738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
14838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public View getDecorView() {
1490e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams        return new View(Robolectric.application);
15038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
15138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
15238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public View peekDecorView() {
15338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return null;
15438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
15538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
15638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public Bundle saveHierarchyState() {
15738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return null;
15838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
15938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
16038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void restoreHierarchyState(Bundle savedInstanceState) {
16138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
16238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
16338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override protected void onActive() {
16438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
16538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
16638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setChildDrawable(int featureId, Drawable drawable) {
16738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
16838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
16938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setChildInt(int featureId, int value) {
17038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
17138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
17238c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public boolean isShortcutKey(int keyCode, KeyEvent event) {
17338c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return false;
17438c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
17538c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
17638c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public void setVolumeControlStream(int streamType) {
17738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
17838c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard
17938c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    @Override public int getVolumeControlStream() {
18038c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard        return 0;
18138c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard    }
182ba755d49ba6df9aa094b7c272350ddf10d8c060cPhil Goodwin & Tyler Schultz
183ba755d49ba6df9aa094b7c272350ddf10d8c060cPhil Goodwin & Tyler Schultz    @Override public void setSoftInputMode(int softInputMode) {
184ba755d49ba6df9aa094b7c272350ddf10d8c060cPhil Goodwin & Tyler Schultz        this.softInputMode = softInputMode;
185ba755d49ba6df9aa094b7c272350ddf10d8c060cPhil Goodwin & Tyler Schultz    }
186e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi
187e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi	@Override public void invalidatePanelMenu(int featureId) {
188e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi	}
189e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi
190e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi	@Override public boolean superDispatchKeyShortcutEvent(KeyEvent event) {
191e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi		return false;
192e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi	}
193e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi
194e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi	@Override public boolean superDispatchGenericMotionEvent(MotionEvent event) {
195e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi		return false;
196e057483dbccea1e7373aed776bb14ef85aaa93c7Michael Portuesi	}
19738c16130a7d0b2709049b010bbb14336e1d25d2dPhil Goodwin & Ryan Richard}
198